Java
logback

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

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です!!(翻訳者に感謝)