Memo/Java/Tomcat

http://dexlab.net/pukiwiki/index.php?Memo%2FJava%2FTomcat
 

Tomcat


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

  • 問題点
    • ログフォルダにログが貯まり続け、ディスク不足になる。特に日付付きファイルが問題。日付無しファイルと中身は一緒。
      1. catalina.out
      2. catalina.YYYY-MM-DD.out
      3. host-manager.YYYY-MM-DD.log
      4. localhost.YYYY-MM-DD.log
      5. manager.YYYY-MM-DD.log
    • /etc/logrotate.d/appnameを以下のように設定しても、logrotateはrotate回数によって削除するため、日付付きファイル名は1回しかローテートされず、消えずに残る。
      1. /var/log/tomcat/appname/*.out
      2. /var/log/tomcat/appname/*.log
      3. {
      4.     missingok
      5.     notifempty
      6.     compress
      7.     copytruncate
      8.     dateext
      9.     su tomcat tomcat # logrotate 3.8以降必須
      10. }
    • 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
      1. 1catalina.org.apache.juli.FileHandler.prefix = catalina
      2. 1catalina.org.apache.juli.FileHandler.rotatable = false
      3.  
      4. 2localhost.org.apache.juli.FileHandler.prefix = localhost
      5. 2localhost.org.apache.juli.FileHandler.rotatable = false
      6.  
      7. 3manager.org.apache.juli.FileHandler.prefix = manager
      8. 3manager.org.apache.juli.FileHandler.rotatable = false
      9.  
      10. 4host-manager.org.apache.juli.FileHandler.prefix = host-manager
      11. 4host-manager.org.apache.juli.FileHandler.rotatable = false

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-13 (月) 18:11:39 (409d)