java logback patternへ独自変数を追加
logbackのpatternに独自の変数(変換指定子)を作成してみます。
<encoder>
<pattern>%d{HH:mm:ss.SSS} %level %logger %method %msg%n</pattern>
</encoder>
上がもともとの設定ですが、uuidを表示できるようにしてみます。
package xxx;
import java.util.UUID;
import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
public class LogbackLayoutTest extends ClassicConverter {
@Override
public String convert(ILoggingEvent event) {
return UUID.randomUUID().toString();
}
}
logback.xmlの設定
<configuration debug="true">
<conversionRule conversionWord="uuid"
converterClass="xxx.LogbackLayoutTest" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%uuid %d{HH:mm:ss.SSS} %.-2level %-18.18logger{20} %method %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
アプリを実行すると以下のようにuuidが追加されています。
45c445df-cbbc-4ef0-96f8-f9900138db24 22:36:03.240 DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction resetAutoCommit Resetting autocommit to true on JDBC Connection [org.postgresql.jdbc.PgConnection@10eb1a0c]
d283db7a-7ed5-4c2e-b709-b16fd372594d 22:36:03.319 DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction close Closing JDBC Connection [org.postgresql.jdbc.PgConnection@10eb1a0c]
52de939f-b520-4902-aba8-5b07981fc8e1 22:36:03.319 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource pushConnection Returned connection 283843084 to pool.