diff --git a/main/commons/src/main/java/org/cryptomator/common/Environment.java b/main/commons/src/main/java/org/cryptomator/common/Environment.java index 7f42c9d1d..861cfbb31 100644 --- a/main/commons/src/main/java/org/cryptomator/common/Environment.java +++ b/main/commons/src/main/java/org/cryptomator/common/Environment.java @@ -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 getSettingsPath() { return getPaths("cryptomator.settingsPath"); } diff --git a/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java b/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java index 429181d2e..4e805fc44 100644 --- a/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java +++ b/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java @@ -120,29 +120,37 @@ public class LoggerModule { @Singleton @Named("initLogging") Runnable provideLogbackInitializer(LoggerContext context, // - @Named("stdoutAppender") Appender stdout, // - @Named("upgradeAppender") Appender upgrade, // - @Named("fileAppender") Appender file) { - return () -> { - context.reset(); + Environment environment, // + @Named("stdoutAppender") Appender stdout, // + @Named("upgradeAppender") Appender upgrade, // + @Named("fileAppender") Appender 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)); + }; + } }