log4j2でファイルを定期的に生成する方法

log4j2で、RollingFileAppenderをファイルの自動生成に使用できます。以下は、毎日新しいログファイルを生成するサンプル構成ファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/app.log"
                     filePattern="logs/app-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d [%t] %-5p %c{1}:%L - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy max="10" />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>

上記のコンフィギュレーションファイルでは、によってログファイル名とファイルパターンが指定されています。%d{yyyy-MM-dd}パターンを使用することで、ログファイル名が1日ごとに新しいファイルに設定されます。セクションではローリングをトリガーするポリシーを指定しており、ここではによって時間に基づいてローリングがトリガーされます。ではローリング戦略を指定しており、デフォルトでは最大10個のログファイルを保持します。

Log4j2.xmlという構成ファイルをプロジェクトで保存し、クラスパスに配置してください。次に、コードでLog4j2を初期化すると、構成されたインターバルでログファイルが生成されます。

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MyApp {
    private static final Logger logger = LogManager.getLogger(MyApp.class);
    
    public static void main(String[] args) {
        logger.info("Hello, World!");
    }
}

ログディレクトリ内に1日1つの新しいログファイル(例: app-2022-01-01.log、app-2022-01-02.log)が生成されます。各ログファイルにアプリケーションのログ情報が記録されます。

log4j2を使用する前に、log4j2の依存関係が正しく設定され、プロジェクトのpom.xmlまたはbuild.gradleに適切な依存関係が 追加されていることを確認してください。

广告
広告は10秒後に閉じます。
bannerAds
bannerAds