
次の設定を使用してTomcatログを作成しています。
AccessLogValve
ログの構成に使用server.xml
Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs/access" prefix="access" suffix=".log" pattern="common" rotatable="false"
logrotate
ログファイルを毎日交換し、古いログファイルを削除するために使用されます。/app/logs/access/access.log { daily dateext missingok rotate 14 maxage 14 compress delaycompress dateyesterday }
logrotate
奇妙なことは、たとえば、毎日ログファイルの名前が変更され、access.log-20171222
新しいログファイルが生成されることです。ただし、Tomcatは名前が変更されたファイルにログを記録します。access.log
copytruncate
現在の回避策はにオプションを追加することですlogrotate
。ただし、このオプションを使用すると、切り捨てると一部のログが失われる可能性があります。
誰でもより良いソリューションを提案できますか?
ありがとうございます。
答え1
~によるとこれドキュメントの場合は、常に同じファイルに書き込まないように回転可能オプションをtrue(デフォルト)にしておく必要があります。ファイル名文字列の形式を固定値として指定して、日付が含まれないようにすることもできます。新しいログが最後のログを上書きする危険がないように、内部回転の前にlogrotateを実行する必要があります(名前が変更されたため)。