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に適切な依存関係が 追加されていることを確認してください。