Tomcat ログファイルを Logrotate

Tomcat ログファイルを Logrotate

次の設定を使用して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を実行する必要があります(名前が変更されたため)。

おすすめ記事