У меня есть файл конфигурации logback.xml, который выглядит следующим образом:
<configuration>
<property name="defaultPattern"
value="%d{dd/MM/yyyy HH:mm:ss.SSS} [%thread] %-5level - %msg%n" />
<!-- Appenders Configuration -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<target>System.err</target>
<filter class="com.aleroot.ErrOutFilter" />
<encoder>
<pattern>${defaultPattern}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>aleroot.log</file>
<append>true</append>
<encoder>
<pattern>${defaultPattern}</pattern>
</encoder>
</appender>
<!-- Output Configuration -->
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="CONSOLE"/>
</root>
<logger name="mainLogger" level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="CONSOLE"/>
</logger>
</configuration>
Я хочу изменить свойство файла приложения FILE во время выполнения и добавить DatePattern вимя файла, я пробовал с этим кодом:
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
ch.qos.logback.classic.Logger logbackLogger = lc.getLogger("mainLogger");
FileAppender<ILoggingEvent> fileAppender =
(FileAppender<ILoggingEvent>) logbackLogger.getAppender("FILE");
if(fileAppender != null) {
fileAppender.stop();
fileAppender.setFile("aleroot-ddMMyyyy.log");
fileAppender.setContext(lc);
fileAppender.start();
}
Проблема в том, что файл aleroot.log создается в любом случае, даже если я изменил имя файла , более того я получаю другой файл, который называется точно: aleroot-ddMMyyyy.log, в то время как я хочу иметь имя файла, например aleroot-04122011.log .Как я могу этого достичь?
Существуют ли настройки, позволяющие избежать создания файла журнала при вызове LoggerFactory.getLogger("mainLogger")
?Я хочу, чтобы файл журнала создавался только в первый раз, когда я записываю файлы журнала, нет необходимости создавать пустой файл журнала.Файл журнала должен быть создан в первый раз, когда я что-то записываю в журнал, например, при первом logger.debug("Something.log")
.
Есть ли настройки для этого?