ログファイルの出力時に日付で分割する方法をlog4jで設定する方法
ログ4jで日付ごとにログファイルを生成するには、log4jのDailyRollingFileAppenderを使用します。
まず、log4jの設定ファイル(通常はlog4j.propertiesまたはlog4j.xml)で以下を追加します。
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.File=logFile.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.rootLogger=INFO, file
上記の構成では、log4j.appender.fileがDailyRollingFileAppenderを使用してログファイルを生成することを指定し、log4j.appender.file.DatePatternで日付のフォーマットを指定し、log4j.appender.file.Fileでログファイルのパスと名前を指定している。
ログのフォーマットは、必要に応じてlog4j.appender.file.layout.ConversionPatternを調整することでカスタマイズできます。
次に、コード中でlog4j の Logger を用いてログを出力します。
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");
}
}
これにより、log4j は毎日 0 時に自動的に新しいログファイルを作成し、ファイル名には現在の日付が含まれます。たとえば、今日が 2022 年 1 月 1 日の場合、生成されるログファイル名は logFile.log.2022-01-01 になります。