次のlog4j2.xmlファイルがあります。
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<appenders>
<RollingFile name="testLog" fileName="test.log" filePattern="" append="false">
<PatternLayout pattern="[%t] %-5level - %msg%n%n"/>
<SizeBasedTriggeringPolicy size="5mb" />
</RollingFile>
</appenders>
<loggers>
<logger name="TestsLogger" level="trace" additivity="false">
<appender-ref ref="testLog"/>
</logger>
<root level="debug">
<appender-ref ref="testLog"/>
</root>
</loggers>
</configuration>
この構成をどのように変更できますか?
1.で作成される部分的なログファイルの数を制限するにはどうすればよいですか?私が達成したいのは次のようなスキームです:
creating test1.log [present log files: test1.log]
test1.log - 5mb limit reached
creating test2.log [present log files: test1.log, test2.log]
test2.log - 5mb limit reached
creating test3.log [present log files: test2.log, test3.log]
test3.log - 5mb limit reached
creating test4.log [present log files: test3.log, test4.log]
and so on
誰かがそのようなことを達成する方法を知っていますか?もちろん、log4j2だけでそのようなことが可能であれば、それは素晴らしいことです。しかし、たぶん、log4j2を、メインのJavaアプリケーションと一緒に実行し、余分なログファイルを削除しながら、最後の2つのログファイルはそのままにしておくような)外部プログラムと組み合わせる方法があるかもしれません。少なくとも1の提案があります。すでに探しているものである可能性があります。第2部のプログラムを作成できる可能性があるためです。もちろん、第2部をlog4j2も同様です。
これまでlog4j2を使用したことはありませんが、 RollingFileAppender のドキュメントには、多くの設定例が記載されています。
縫い目が次のようになるのは興味深い(DefaultRolloverStrategy
を使用):
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="5 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>