Я пытаюсь программно настроить LogBack RollingFileAppender
(ch.qos.logback.core.rolling.RollingFileAppender
), и, похоже, он не работает. Когда я использую FileAppender
, кажется, что все работает нормально с точно такой же конфигурацией (меньше политик / триггера), поэтому я предполагаю, что это не проблема разрешения. Я попытался закомментировать всю конфигурацию политики, и это тоже не помогло. Ниже приведен мой пример кода с некоторыми жестко закодированными значениями. Кроме того, нет ошибок вообще, что так всегда. Когда я отлаживал исходный код LogBack, я не видел ничего, что могло бы пойти не так.
Любой намек приветствуется. Мне нужно, чтобы это работало без файла конфигурации, так как это ограничение в моей организации. Я тестирую это на MacBook.
Logger logger = (Logger)LoggerFactory.getLogger(applicationName);
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
lc.reset();
RollingFileAppender<ILoggingEvent> fileAppender =
new RollingFileAppender<ILoggingEvent>();
fileAppender.setAppend(true);
fileAppender.setFile("/Users/Jack/Desktop/logs/" + applicationName + ".log");
fileAppender.setContext(lc);
SizeBasedTriggeringPolicy<ILoggingEvent> rPolicy =
new SizeBasedTriggeringPolicy<ILoggingEvent>("20MB");
fileAppender.setTriggeringPolicy(rPolicy);
TimeBasedRollingPolicy<ILoggingEvent> tPolicy =
new TimeBasedRollingPolicy<ILoggingEvent>();
tPolicy.setFileNamePattern("/archive/" + applicationName + ".%d");
tPolicy.setMaxHistory(180);
tPolicy.setParent(fileAppender);
tPolicy.setContext(lc);
PatternLayout pl = new PatternLayout();
pl.setPattern("%d %5p %t [%c:%L] %m%n)");
pl.setContext(lc);
pl.start();
fileAppender.setLayout(pl);
fileAppender.start();
logger.addAppender(fileAppender);
logger.setLevel(Level.DEBUG);
logger.debug("Test message");