Add logback logger that will log to file
Add dependency on logback and configure logger to log to ~/.runelite/logs/application.log with rolling file appender, that means every 10MB file will be rolled and also every day file will be rolled with maximum history of 30 days, to not flood user's system space. Add new console parameter -debug, because logback properties cannot be set from console like slf4j-simple ones, so it needs to be done in a bit more complicated way. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user