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.");
}
}
指定したログファイルにログを出力し、ファイル名は日付によって自動的に変わります。