[FEATURE] Введение нового уровня логгирования: dev

This commit is contained in:
Gravit 2019-01-15 10:48:20 +07:00
parent 9b7dec7360
commit aceb06bc9d
No known key found for this signature in database
GPG key ID: 061981E1E85D3216
5 changed files with 58 additions and 22 deletions

View file

@ -367,6 +367,7 @@ public LaunchServer(Path dir, String[] args) throws IOException, InvalidKeySpecE
config = Launcher.gson.fromJson(reader, Config.class);
}
config.verify();
Launcher.applyLauncherEnv(config.env);
for (AuthProvider provider : config.authProvider) {
provider.init();
}
@ -396,13 +397,7 @@ public LaunchServer(Path dir, String[] args) throws IOException, InvalidKeySpecE
if (config.textureProvider instanceof Reloadable)
reloadManager.registerReloadable("textureProvider", (Reloadable) config.textureProvider);
Arrays.stream(config.mirrors).forEach(s -> {
try {
mirrorManager.addMirror(s);
} catch (MalformedURLException e) {
e.printStackTrace();
}
});
Arrays.stream(config.mirrors).forEach(mirrorManager::addMirror);
if (config.permissionsHandler instanceof Reconfigurable)
reconfigurableManager.registerReconfigurable("permissionsHandler", (Reconfigurable) config.permissionsHandler);
@ -416,13 +411,7 @@ public LaunchServer(Path dir, String[] args) throws IOException, InvalidKeySpecE
if (config.textureProvider instanceof Reconfigurable)
reconfigurableManager.registerReconfigurable("textureProvider", (Reconfigurable) config.textureProvider);
Arrays.stream(config.mirrors).forEach(s -> {
try {
mirrorManager.addMirror(s);
} catch (MalformedURLException e) {
e.printStackTrace();
}
});
Arrays.stream(config.mirrors).forEach(mirrorManager::addMirror);
// init modules
modulesManager.initModules();

View file

@ -108,6 +108,8 @@ public static void main(String... args) throws Throwable {
}
LauncherConfig cfg = new LauncherConfig(config.address, config.port, SecurityHelper.toPublicRSAKey(IOHelper.read(publicKeyFile)), new HashMap<>(), config.projectname);
Launcher.setConfig(cfg);
if(config.env != null) Launcher.applyLauncherEnv(config.env);
else Launcher.applyLauncherEnv(LauncherConfig.LauncherEnvironment.STD);
if (config.logFile != null) LogHelper.addOutput(IOHelper.newWriter(Paths.get(config.logFile), true));
if (config.syncAuth) auth(wrapper);
else
@ -176,6 +178,7 @@ private static void generateConfigIfNotExists() throws IOException {
newConfig.stopOnError = true;
newConfig.reconnectCount = 10;
newConfig.reconnectSleep = 1000;
newConfig.env = LauncherConfig.LauncherEnvironment.STD;
//try(Reader reader = IOHelper.newReader(IOHelper.getResourceURL("ru/gravit/launcher/server/ServerWrapper.cfg")))
//{
// newConfig = gson.fromJson(reader,Config.class);
@ -207,6 +210,7 @@ public static final class Config {
public String mainclass;
public String login;
public String password;
public LauncherConfig.LauncherEnvironment env;
}
public ClientProfile profile;

View file

@ -8,6 +8,7 @@
import ru.gravit.utils.Version;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.JVMHelper;
import ru.gravit.utils.helper.LogHelper;
import ru.gravit.utils.helper.SecurityHelper;
import java.io.IOException;
@ -130,4 +131,27 @@ public static Version getVersion() {
public static boolean isUsingAvanguard() {
return JVMHelper.OS_TYPE == JVMHelper.OS.MUSTDIE && useAvanguard;
}
public static void applyLauncherEnv(LauncherConfig.LauncherEnvironment env)
{
switch (env)
{
case DEV:
LogHelper.setDevEnabled(true);
LogHelper.setStacktraceEnabled(true);
LogHelper.setDebugEnabled(true);
break;
case DEBUG:
LogHelper.setDebugEnabled(true);
LogHelper.setStacktraceEnabled(true);
break;
case STD:
break;
case PROD:
LogHelper.setStacktraceEnabled(false);
LogHelper.setDebugEnabled(false);
LogHelper.setDevEnabled(false);
break;
}
}
}

View file

@ -60,13 +60,7 @@ public LauncherConfig(HInput input) throws IOException, InvalidKeySpecException
else if (config.env == 2) env = LauncherEnvironment.STD;
else if (config.env == 3) env = LauncherEnvironment.PROD;
else env = LauncherEnvironment.STD;
if (env == LauncherEnvironment.PROD) {
LogHelper.setStacktraceEnabled(false);
LogHelper.setDebugEnabled(false);
}
if (env == LauncherEnvironment.DEV || env == LauncherEnvironment.DEBUG) {
LogHelper.setDebugEnabled(true);
}
Launcher.applyLauncherEnv(env);
// Read signed runtime
int count = input.readLength(0);
Map<String, byte[]> localResources = new HashMap<>(count);

View file

@ -22,6 +22,8 @@ public final class LogHelper {
@LauncherAPI
public static final String DEBUG_PROPERTY = "launcher.debug";
@LauncherAPI
public static final String DEV_PROPERTY = "launcher.dev";
@LauncherAPI
public static final String STACKTRACE_PROPERTY = "launcher.stacktrace";
@LauncherAPI
public static final String NO_JANSI_PROPERTY = "launcher.noJAnsi";
@ -32,6 +34,7 @@ public final class LogHelper {
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss", Locale.US);
private static final AtomicBoolean DEBUG_ENABLED = new AtomicBoolean(Boolean.getBoolean(DEBUG_PROPERTY));
private static final AtomicBoolean STACKTRACE_ENABLED = new AtomicBoolean(Boolean.getBoolean(STACKTRACE_PROPERTY));
private static final AtomicBoolean DEV_ENABLED = new AtomicBoolean(Boolean.getBoolean(DEV_PROPERTY));
private static final Set<Output> OUTPUTS = Collections.newSetFromMap(new ConcurrentHashMap<>(2));
private static final Output STD_OUTPUT;
@ -64,11 +67,23 @@ public static void debug(String message) {
}
}
@LauncherAPI
public static void dev(String message) {
if (isDevEnabled()) {
log(Level.DEV, message, false);
}
}
@LauncherAPI
public static void debug(String format, Object... args) {
debug(String.format(format, args));
}
@LauncherAPI
public static void dev(String format, Object... args) {
debug(String.format(format, args));
}
@LauncherAPI
public static void error(Throwable exc) {
error(isStacktraceEnabled() ? toString(exc) : exc.toString());
@ -109,11 +124,21 @@ public static boolean isStacktraceEnabled() {
return STACKTRACE_ENABLED.get();
}
@LauncherAPI
public static boolean isDevEnabled() {
return DEV_ENABLED.get();
}
@LauncherAPI
public static void setStacktraceEnabled(boolean stacktraceEnabled) {
STACKTRACE_ENABLED.set(stacktraceEnabled);
}
@LauncherAPI
public static void setDevEnabled(boolean stacktraceEnabled) {
DEV_ENABLED.set(stacktraceEnabled);
}
@LauncherAPI
public static void log(Level level, String message, boolean sub) {
String dateTime = DATE_TIME_FORMATTER.format(LocalDateTime.now());
@ -318,7 +343,7 @@ public interface Output {
@LauncherAPI
public enum Level {
DEBUG("DEBUG"), INFO("INFO"), WARNING("WARN"), ERROR("ERROR");
DEV("DEV"),DEBUG("DEBUG"), INFO("INFO"), WARNING("WARN"), ERROR("ERROR");
public final String name;
Level(String name) {