Memo/Java/Tomcat

https://dexlab.net:443/pukiwiki/index.php?Memo/Java/Tomcat
 

Tomcat


tomcatのデフォルトログファイルから日付を削除

  • 問題点
    • ログフォルダにログが貯まり続け、ディスク不足になる。特に日付付きファイルが問題。日付無しファイルと中身は一緒。
      catalina.out
      catalina.YYYY-MM-DD.out
      host-manager.YYYY-MM-DD.log
      localhost.YYYY-MM-DD.log
      manager.YYYY-MM-DD.log
    • /etc/logrotate.d/appnameを以下のように設定しても、logrotateはrotate回数によって削除するため、日付付きファイル名は1回しかローテートされず、消えずに残る。
      /var/log/tomcat/appname/*.out
      /var/log/tomcat/appname/*.log
      {
          missingok
          notifempty
          compress
          copytruncate
          dateext
          su tomcat tomcat # logrotate 3.8以降必須
      }
    • tomcatのログはプロセスが握っており、シグナルを送ってもログファイルが再作成されないため、「copytruncate」が良いかも。copy -> truncateの僅かな時間のログが消えるかもしれないがディスクフルになる方が問題なので割り切る。
    • apacheやnginxはシグナル(-USR1)を送ると、ログファイルを再生成してくれる
  • ログファイル名に日付を含ませない
    • FileHandler (Apache Tomcat 7.0.75 API Documentation)
    • server.xml や config.properties で「rotatable=false」にすれば良さそう
    • 「rotatable=false」にするとログファイル名が「catalina..log」のようになるので、「prefix」末尾の「.」を削除
    • FileHandler? を継承している AsyncFileHandler? も同様
    • logging.properties
      1catalina.org.apache.juli.FileHandler.prefix = catalina
      1catalina.org.apache.juli.FileHandler.rotatable = false
      
      2localhost.org.apache.juli.FileHandler.prefix = localhost
      2localhost.org.apache.juli.FileHandler.rotatable = false
      
      3manager.org.apache.juli.FileHandler.prefix = manager
      3manager.org.apache.juli.FileHandler.rotatable = false
      
      4host-manager.org.apache.juli.FileHandler.prefix = host-manager
      4host-manager.org.apache.juli.FileHandler.rotatable = false

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-15 (土) 07:31:37 (9d)