diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index 2e3125fe5b..86a69d5a82 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -38,6 +38,7 @@ 1.7.12 + 1.2.3 4.1.0 true @@ -50,10 +51,9 @@ ${slf4j.version} - org.slf4j - slf4j-simple - ${slf4j.version} - runtime + ch.qos.logback + logback-classic + ${logback.version} net.sf.jopt-simple @@ -215,6 +215,12 @@ ** + + ch.qos.logback:* + + ** + + diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index ff86d850e2..53a011be58 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -24,6 +24,8 @@ */ package net.runelite.client; +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; import com.google.common.annotations.VisibleForTesting; import com.google.common.eventbus.EventBus; import com.google.inject.Guice; @@ -48,6 +50,8 @@ import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.PluginManager; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.overlay.OverlayRenderer; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; @Singleton @Slf4j @@ -56,6 +60,8 @@ public class RuneLite public static final File RUNELITE_DIR = new File(System.getProperty("user.home"), ".runelite"); public static final File PROFILES_DIR = new File(RUNELITE_DIR, "profiles"); public static final File SCREENSHOT_DIR = new File(RUNELITE_DIR, "screenshots"); + private static final File LOGS_DIR = new File(RUNELITE_DIR, "logs"); + private static final File LOGS_FILE_NAME = new File(LOGS_DIR, "application"); private static Injector injector; private static OptionSet options; @@ -96,14 +102,23 @@ public class RuneLite public static void main(String[] args) throws Exception { - OptionParser parser = new OptionParser(); parser.accepts("developer-mode"); parser.accepts("no-rs"); + parser.accepts("debug"); setOptions(parser.parse(args)); PROFILES_DIR.mkdirs(); + // Setup logger + MDC.put("logFileName", LOGS_FILE_NAME.getAbsolutePath()); + + if (options.has("debug")) + { + final Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + logger.setLevel(Level.DEBUG); + } + setInjector(Guice.createInjector(new RuneLiteModule())); injector.getInstance(RuneLite.class).start(); } diff --git a/runelite-client/src/main/resources/logback.xml b/runelite-client/src/main/resources/logback.xml new file mode 100644 index 0000000000..4bafcd0e5c --- /dev/null +++ b/runelite-client/src/main/resources/logback.xml @@ -0,0 +1,68 @@ + + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + + logFileName + ${user.home}/.runelite/logs/application + + + + + ${logFileName}.log + + + + ${logFileName}_%d{yyyy-MM-dd}.%i.log + + + + 10MB + + + + 30 + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + \ No newline at end of file