web-dev-qa-db-ja.com

すべてのTomcatログローテーションをオフにする方法

Logrotateを使用してサーバーのログローテーションを管理したいのですが、Tomcatは独自のログローテーションを実行するため、logrotateとの相互作用が悪く、オフにする方法が見つかりません。現在、Tomcatインスタンスは5種類のログを生成します。

  • catalina.2018-01-17.log
  • mysite_access.2018-01-17.log
  • localhost.2018-01-17.log
  • Host-manager.2018-01-17.log
  • manager.2018-01-17.log

グーグルで調べたところ、server.xmlの適切なrotatable="false"要素に<Value>を追加することで、「mysite」ログのローテーションを無効にできることがわかりましたが、他のログには対応する<Value>要素がありません。

ログはlogging.propertiesファイルで設定されているようですが、このファイルの「回転をオフにする」オプションが見つかりません。誰か助けてもらえますか? Tomcat 8.5を使用しています

4
codebox

TomcatインスタンスのデフォルトとしてJULIロギングを使用している可能性があります。これを試して

1catalina.org.Apache.juli.FileHandler.rotatable = false

Logging.properties内。

そのプロパティを検索すると、オンラインのサンプルがいくつかあります。

これらのログを何にも使用しない場合は、logging.propertiesファイルを削除するか名前を変更して、JULIロギングの使用を停止できます。

7
Schrute

あなたは間違った視点からそれに来ていると思います。 logrotateには本質的に斬新なものは何もありません。実際、通常は cron から1日に1回実行されるため、- logrotateの方向がわからない理由がわからない、おかしい状況になる可能性があります)動作中

ここでの最良のアプローチは、デフォルトの Tomcat をそのままにして(実際には、たとえば、さまざまなバックアップの目的でより使いやすい)、次を使用する単純なスクリプトでローテーションを行うことです。ローテーションを実行するためのファイル変更時間(例:find /var/Tomcat/logs/ -mtime +5 -name "*.log" -exec echo rm {} \;、実物のためにechoを削除します)。

関連する質問 ごとに、上記の find スニペットをlastaction/endscriptディレクティブ内でlogrotateのディレクティブ内に構成することもできますが、cronに直接入れて独自に実行することもできます時間。

その他の参考資料:

2
cnst

ログをsyslogに送信し、syslogでログファイルを書き込んで、必要に応じてローテーションするだけです。

1
Stone