質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
logrotate

logrotateはログの世代管理やサイズ制限を行うLinux標準のツールです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

496閲覧

Tomcatログをlogrotate以外でローテーションしたい

sabaka

総合スコア3

logrotate

logrotateはログの世代管理やサイズ制限を行うLinux標準のツールです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2024/05/30 01:57

編集2024/05/30 04:51

実現したいこと

Tomcatログをlinux標準の「logrotate」以外でローテーションしたいです。

発生している問題・分からないこと

Tomcatログを「logrotate」でローテーションすると、オプションのcopytruncateを使用するかpostrotateを利用してプロセスを再起動するしか無いですが、どちらも一長一短です。
Tomcatの標準でローテーションできる機能があるとの記事を見かけたのですが、詳細がなかったため、出来るのであればお教えいただきたいです。

ローテ対象は以下の4ログです。
・catalina.out              標準出力(catalina.logの内容を含む)+標準エラー出力
・catalina.YYYY-MM-DD.log        Tomcat自体のログ
・localhost.YYYY-MM-DD.log       ホスト共通のServletContext#log
・localhost_access_log.YYYY-MM-DD.txt  ホスト共通のアクセスログ

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Googleで検索しましたが、見つけられませんでした。

補足

CentOS release 6.10 (Final)
Apache Tomcat/8.0.53

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2024/05/30 03:24

> Tomcatの標準でローテーションできる機能があるとの記事を見かけたのですが、詳細がなかったため、出来るのであればお教えいただきたいです。 tomcatで"log"と名の付くものに対するローテーションの機能は、アクセスログに限ったもののようです。 公式のページから https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html "rotatable"で検索してみてください。既定値はtrue なので「ローテートする」。 ローテートはするけど削除はしないので、これは別途スケジューラーなどで処理する必要がありそうです。 ただ、恐らく質問者さんはアクセスログ以外のログも対象にしているのでしょうから、その辺りの詳細も質問文に追記すると良いかもしれません。
sabaka

2024/05/30 05:38

情報いただきありがとうございます。 また、対象のログの種類も追記いたしました。
guest

回答1

0

・catalina.out              標準出力(catalina.logの内容を含む)+標準エラー出力

logrotateしか無いと思う。
javaを起動するshellが作成してるのでshellを書き換えてファイルを作成しないという方法もあると思います。
また、catalina.YYYY-MM-DD.log と内容も(ほぼ)同一なので java プロセスが起動できない場合以外はほぼ用無しなんじゃないかと。いっそのこと console には何も出力しないように設定するのも合理性はあります。

・catalina.YYYY-MM-DD.log        Tomcat自体のログ
・localhost.YYYY-MM-DD.log       ホスト共通のServletContext#log

logging.properties で設定できそう。デフォルト90日だそうです。

By default the log files will be kept on the file system for 90 days. This may be changed per handler using the handlerName.maxDays property. If the specified value for the property is ≤0 then the log files will be kept on the file system forever, otherwise they will be kept the specified maximum days.

https://tomcat.apache.org/tomcat-9.0-doc/logging.html

・localhost_access_log.YYYY-MM-DD.txt  ホスト共通のアクセスログ

server.xml で設定できそう。

The Access Log Valve supports the following configuration attributes:
中略
maxDays
The maximum number of days rotated access logs will be retained for before being deleted. If not specified, > the default value of -1 will be used which means never delete old files.

投稿2024/10/19 16:37

take88

総合スコア1484

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問