mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-04-29 05:42:39 -04:00
allow configuration of custom logback configuration via -Dlogback.configurationFile vm arg
This commit is contained in:
@@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Optional;
|
||||
@@ -27,6 +28,9 @@ public class Environment {
|
||||
|
||||
@Inject
|
||||
public Environment() {
|
||||
LOG.debug("user.language: {}", System.getProperty("user.language"));
|
||||
LOG.debug("user.region: {}", System.getProperty("user.region"));
|
||||
LOG.debug("logback.configurationFile: {}", System.getProperty("logback.configurationFile"));
|
||||
LOG.debug("cryptomator.settingsPath: {}", System.getProperty("cryptomator.settingsPath"));
|
||||
LOG.debug("cryptomator.ipcPortPath: {}", System.getProperty("cryptomator.ipcPortPath"));
|
||||
LOG.debug("cryptomator.keychainPath: {}", System.getProperty("cryptomator.keychainPath"));
|
||||
@@ -34,6 +38,10 @@ public class Environment {
|
||||
LOG.debug("cryptomator.mountPointsDir: {}", System.getProperty("cryptomator.mountPointsDir"));
|
||||
}
|
||||
|
||||
public boolean useCustomLogbackConfig() {
|
||||
return getPath("logback.configurationFile").map(Files::exists).orElse(false);
|
||||
}
|
||||
|
||||
public Stream<Path> getSettingsPath() {
|
||||
return getPaths("cryptomator.settingsPath");
|
||||
}
|
||||
|
||||
@@ -120,29 +120,37 @@ public class LoggerModule {
|
||||
@Singleton
|
||||
@Named("initLogging")
|
||||
Runnable provideLogbackInitializer(LoggerContext context, //
|
||||
@Named("stdoutAppender") Appender<ILoggingEvent> stdout, //
|
||||
@Named("upgradeAppender") Appender<ILoggingEvent> upgrade, //
|
||||
@Named("fileAppender") Appender<ILoggingEvent> file) {
|
||||
return () -> {
|
||||
context.reset();
|
||||
Environment environment, //
|
||||
@Named("stdoutAppender") Appender<ILoggingEvent> stdout, //
|
||||
@Named("upgradeAppender") Appender<ILoggingEvent> upgrade, //
|
||||
@Named("fileAppender") Appender<ILoggingEvent> file) {
|
||||
if (environment.useCustomLogbackConfig()) {
|
||||
return () -> {
|
||||
Logger root = context.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||
root.info("Using external logback configuration file.");
|
||||
};
|
||||
} else {
|
||||
return () -> {
|
||||
context.reset();
|
||||
|
||||
// configure root logger:
|
||||
Logger root = context.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||
root.setLevel(ROOT_LOG_LEVEL);
|
||||
root.addAppender(stdout);
|
||||
root.addAppender(file);
|
||||
// configure root logger:
|
||||
Logger root = context.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||
root.setLevel(ROOT_LOG_LEVEL);
|
||||
root.addAppender(stdout);
|
||||
root.addAppender(file);
|
||||
|
||||
// configure root logger:
|
||||
Logger uprades = context.getLogger("org.cryptomator.ui.model");
|
||||
uprades.setLevel(Level.DEBUG);
|
||||
uprades.addAppender(stdout);
|
||||
uprades.addAppender(upgrade);
|
||||
// configure root logger:
|
||||
Logger uprades = context.getLogger("org.cryptomator.ui.model");
|
||||
uprades.setLevel(Level.DEBUG);
|
||||
uprades.addAppender(stdout);
|
||||
uprades.addAppender(upgrade);
|
||||
|
||||
// add shutdown hook
|
||||
DelayingShutdownHook shutdownHook = new DelayingShutdownHook();
|
||||
shutdownHook.setContext(context);
|
||||
shutdownHook.setDelay(Duration.buildByMilliseconds(SHUTDOWN_DELAY_MS));
|
||||
};
|
||||
// add shutdown hook
|
||||
DelayingShutdownHook shutdownHook = new DelayingShutdownHook();
|
||||
shutdownHook.setContext(context);
|
||||
shutdownHook.setDelay(Duration.buildByMilliseconds(SHUTDOWN_DELAY_MS));
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user