log4jを使用して日付ごとにログを生成する方法

Log4jでは、DailyRollingFileAppenderクラスを利用することで、日付でログを出力できます。

まず、log4j の設定ファイル内に DailyRollingFileAppender を定義する必要があります。そして DatePattern 属性を指定して日付の形式を設定する必要があります。たとえば、’.yyyy-MM-dd’を使用して、年-月-日の形式に従ってログファイルを生成できます。例の設定は以下のようになります。

log4j.appender.daily=org.apache.log4j.DailyRollingFileAppender
log4j.appender.daily.File=logs/mylog.log
log4j.appender.daily.DatePattern='.'yyyy-MM-dd
log4j.appender.daily.layout=org.apache.log4j.PatternLayout
log4j.appender.daily.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] - %m%n

上記の設定により、mylog.logという名前のログファイルが生成され、毎日のログが別々のファイルに保存されるようになります。ファイル名の形式は mylog.log.yyyy-MM-dd です。

ログ4j.appender.daily.Fileの設定では、ログファイルのファイルパスとファイル名を指定していますので、必要に応じてご自身でご変更ください。また、log4j.appender.daily.layout.ConversionPatternはログの出力パターンを設定していますので、必要に応じてご自身でご変更ください。

ロガーの初期化完了後、コード内にlog4jのLoggerオブジェクトを使ってメッセージを出力するだけで、log4jが自動で設定内容に従って、その日のログファイルを出力します。

import org.apache.log4j.Logger;

public class MyClass {
    private static final Logger logger = Logger.getLogger(MyClass.class);
    
    public static void main(String[] args) {
        logger.info("This is a log message.");
    }
}

指定したログファイルにログを出力し、ファイル名は日付によって自動的に変わります。

コメントを残す 0

Your email address will not be published. Required fields are marked *