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

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

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

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

Linux

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

Tomcat

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

Q&A

1回答

232閲覧

Tomcatのログローテーションの方法について

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/29 07:11

編集2024/05/29 07:36

実現したいこと

Tomcatのログローテーションを行いたいです。

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

OS標準の「roglotation」を使用する場合、ログをプログラムが掴んでいるため、オプションの「copytruncate」を使用しないといけないと思いますが、copy と truncate の間のログは、出力されないとの情報をみました。
回避策はあるのかお教え下さい。

一応、該当のソースコード設定でローテーションは出来ました。

該当のソースコード

/opt/tomcat/apache-tomcat-8.0.53/logs/catalina.out /opt/tomcat/apache-tomcat-8.0.53/logs/*.log { copytruncate daily rotate 7 compress missingok create 0644 tomcat tomcat }

試したこと・調べたこと

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

OS標準の「roglotation」以外にも、Tomcat標準のログローテーションがあるような記事を見たのですが、調べても「roglotation」以外出てこなかったです…

補足

CentOS release 6.10 (Final)
Apache Tomcat/8.0.53

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

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

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

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

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

poto568

2024/05/29 08:38

「logrotate ログ 欠損 対策」で検索すると以下の記事が 引っかかりました。(当該記事を書いたのは私ではありません。) 参考になるかもしれません。 https://qiita.com/b_a_a_d_o/items/a23cad2684e3ecd6e595 logrotateでログが欠損するケースとその対策
sabaka

2024/05/30 01:59

コメントありがとうございます。 記事を読んだ限り、Tomcatの場合は欠損を許容するかローテ毎にプロセスを再起動するしか無さそうですね…
guest

回答1

0

catalina.out は shell が作成しますが、それ以外のログは tomcat の java プロセスが作成します。

そのため、catalina.out 以外は tomcat 側でローテートすれば OS標準の logrotate の影響はうけなくなります。

また、catalina.out は catalina.YYYY-MM-DD.log と内容がほぼ同じなので、情報としての価値はあまりありません。唯一あるのは、shell が java のプロセスを起動出来ない、と言った場合の痕跡が残るのが catalina.out です。

なので、一つの回避策としては、logging.properties で CONSOLE への出力を行わないようにして、catalina.out のデータ量を減らします。そのうえで、ローテーションをしないようにします。

また、tomcat を起動する shell スクリプトの中で、既存のcatalina.out が存在する場合に、リネームして作り変えることで、安全に catalina.out をローテーションさせると言った方法が考えられると思います。

投稿2024/10/19 16:44

take88

総合スコア1429

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問