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.