SLF4J、logbackで複数のLoggerを使い、別々のファイルに出力する
2017年09月27日 23時45分21秒
SLF4J、logbackを使用し、別々のファイルに出力するLoggerを使用する必要があったので調査。
簡単に実現できました。
・logback.xmlに異なるファイルを定義したappenderを定義する
・Loggerを使いたいクラスで、使いたい方のLoggerを宣言するのみ。両方を同時に宣言して各処理で使い分けてもよし。
【logback.xml】※一部のみ抜粋
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<encoder>
<pattern>%msg%n</pattern> ※パターンは好きなように定義
</encoder>
<file>/log/test.log</file>
</appender>
<appender name="FILE_2" class="ch.qos.logback.core.FileAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
<file>/log/test2.log</file>
</appender>
<logger name="jp.test" level="DEBUG">
<appender-ref ref="FILE" />
</logger>
<logger name="TestLog" level="DEBUG">
<appender-ref ref="FILE_2" />
</logger>
【Java】
// test.logに出力する為のLogger
private static Logger logger = LoggerFactory.getLogger(Test.class);
// test2.logに出力する為のLogger
private static Logger logger2 = LoggerFactory.getLogger("TestLog");
簡単に実現できました。
・logback.xmlに異なるファイルを定義したappenderを定義する
・Loggerを使いたいクラスで、使いたい方のLoggerを宣言するのみ。両方を同時に宣言して各処理で使い分けてもよし。
【logback.xml】※一部のみ抜粋
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<encoder>
<pattern>%msg%n</pattern> ※パターンは好きなように定義
</encoder>
<file>/log/test.log</file>
</appender>
<appender name="FILE_2" class="ch.qos.logback.core.FileAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
<file>/log/test2.log</file>
</appender>
<logger name="jp.test" level="DEBUG">
<appender-ref ref="FILE" />
</logger>
<logger name="TestLog" level="DEBUG">
<appender-ref ref="FILE_2" />
</logger>
【Java】
// test.logに出力する為のLogger
private static Logger logger = LoggerFactory.getLogger(Test.class);
// test2.logに出力する為のLogger
private static Logger logger2 = LoggerFactory.getLogger("TestLog");
PR
Comment