biz-Streamマニュアル ライブラリ共通ガイド 第4章 ログ設定 4.5.2 時間によるローテーション

4.5.2 時間によるローテーション

設定した時間を経過したときにログファイルを切り替えます。
設定できる属性等は以下のとおりです。

属性 説明
Name 定義名を定義する。
(logger要素のappender-ref要素のref属性から参照される)
Class ch.qos.logback.core.rolling.RollingFileAppender
File ファイルパス、ファイル名
rollingPolicy ローテーションの方法を設定します。
時間の場合はclassとしてch.qos.logback.core.rolling.TimeBasedRollingPolicyを指定します。
FileNamePattern ローテーションするタイミングを設定します。
下記の設定が可能です。
%d 日毎(夜中)
%d{yyyy-MM}.log 月のはじめ
%d{yyyy-ww}.log 週のはじめ
%d{yyyy-MM-dd-a}.log 毎日正午と夜中
%d{yyyy-MM-dd_HH}.log 毎時
%d{yyyy-MM-dd_HH-mm}.log 毎分
Pattern 出力する書式を設定します。
charset ログ出力時の文字エンコードを設定します。
Javaのエンコーディング名が使用できます。
デフォルトは実行環境のデフォルトエンコーディングです。
以下は時間でローテーションを行う際の記述例です。

この例では分ごとに出力するファイルを切り替えます。
ログファイルは分ごとにbspdf2008-09-01-11_01.log、bspdf2008-09-01-11_02.log、bspdf2008-09-01-11_03.log・・・のように出力されていきます。
設定できる書式と出力されるファイル名の具体例は下記のようになっています。
記述例:
<appender name="PDFLIB_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.dir}/bspdf.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>${log.dir}/bspdf%d{yyyy-MM-dd_HH-mm}.log</FileNamePattern>
    </rollingPolicy>
    <encoder>
        <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level %logger - %msg%n%ex{full}</Pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>
書式 説明
%d 日付が変わると切り替わります。
bspdf2008-09-01.log、bspdf2008-09-02.log、bspdf2008-09-03.log・・・
のように出力されます。
%d{yyyy-MM}.log 月のはじめに切り替わります。
bspdf2008-09.log、bspdf2008-10.log、bspdf2008-12.log・・・
のように出力されます。
%d{yyyy-ww}.log 週のはじめに切り替わります。
bspdf2008-38.log、bspdf2008-39.log、bspdf2008-40.log・・・
のように出力されます。
%d{yyyy-MM-dd-a}.log 毎日正午と夜中に切り替わります。
bspdf2008-09-01-AM.log、bspdf2008-09-01-PM.log、
bspdf2008-09-02-AM.log・・・
のように出力されます。
%d{yyyy-MM-dd_HH}.log 時間ごとに切り替わります。
bspdf2008-09-01-11.log、bspdf2008-09-01-12.log、
bspdf2008-09-01-13.log・・・
のように出力されます。
%d{yyyy-MM-dd_HH-mm}.log 分ごとに切り替わります。
bspdf2008-09-01-11_01.log、bspdf2008-09-01-11_02.log、
bspdf2008-09-01-11_03.log・・・
のように出力されます。
ファイル名の後ろにgzまたはzipを付与すると、出力されたファイルが自動的に圧縮されます。