Edited at

logbackで出力するログファイルに日付(e.g. yyyy-MM-dd)を入れる

More than 1 year has passed since last update.

logbackを使用してログをファイルに出力する際に・・・アクティブなログファイルにも日付入れられないかな〜と思って調べたら、普通にできることがわかりました!


どうすればよいのか?

RollingFileAppenderfileプロパティを省略し、TimeBasedRollingPolicyfileNamePatternプロパティにローテーションしたい単位の日付形式を含めるだけです。

<appender name="APPLICATION_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<!--<file>${app.log.dir:-log}/application.log</file>--> <!-- これを省略!! -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${app.log.dir:-log}/application-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern><![CDATA[date:%d{yyyy-MM-dd HH:mm:ss}\tthread:%thread\tX-Track:%X{X-Track}\tlevel:%-5level\tlogger:%-48logger{48}\tmessage:%msg%n]]></pattern>
</encoder>
</appender>


これって正式な方法なの?

TimeBasedRollingPolicyのfileNamePatternプロパティ」の説明欄にばっちり記載してありました!


まとめ

まとめることは何もありませんが・・・

ドキュメントみるの面倒なんですが・・・ちゃんと書いてあると安心して使えますね!! 特に・・・OSSとして多くの人に使ってもらうためには、ドキュメンテーション大事だよな〜。logbackは日本語訳があるのもGoodです!!(翻訳者に感謝)