Logrotateを使用してサーバーのログローテーションを管理したいのですが、Tomcatは独自のログローテーションを実行するため、logrotateとの相互作用が悪く、オフにする方法が見つかりません。現在、Tomcatインスタンスは5種類のログを生成します。
グーグルで調べたところ、server.xmlの適切なrotatable="false"
要素に<Value>
を追加することで、「mysite」ログのローテーションを無効にできることがわかりましたが、他のログには対応する<Value>
要素がありません。
ログはlogging.propertiesファイルで設定されているようですが、このファイルの「回転をオフにする」オプションが見つかりません。誰か助けてもらえますか? Tomcat 8.5を使用しています
TomcatインスタンスのデフォルトとしてJULIロギングを使用している可能性があります。これを試して
1catalina.org.Apache.juli.FileHandler.rotatable = false
Logging.properties内。
そのプロパティを検索すると、オンラインのサンプルがいくつかあります。
これらのログを何にも使用しない場合は、logging.propertiesファイルを削除するか名前を変更して、JULIロギングの使用を停止できます。
あなたは間違った視点からそれに来ていると思います。 logrotate
には本質的に斬新なものは何もありません。実際、通常は cron
から1日に1回実行されるため、- (logrotate
の方向がわからない理由がわからない、おかしい状況になる可能性があります)動作中 。
ここでの最良のアプローチは、デフォルトの Tomcat
をそのままにして(実際には、たとえば、さまざまなバックアップの目的でより使いやすい)、次を使用する単純なスクリプトでローテーションを行うことです。ローテーションを実行するためのファイル変更時間(例:find /var/Tomcat/logs/ -mtime +5 -name "*.log" -exec echo rm {} \;
、実物のためにecho
を削除します)。
関連する質問 ごとに、上記の find
スニペットをlastaction
/endscript
ディレクティブ内でlogrotate
のディレクティブ内に構成することもできますが、cron
に直接入れて独自に実行することもできます時間。
その他の参考資料:
ログをsyslogに送信し、syslogでログファイルを書き込んで、必要に応じてローテーションするだけです。