当前位置:   article > 正文

【Tomcat】在 linux 上实现 Catlina.log 自动分割,防止文件过大

【Tomcat】在 linux 上实现 Catlina.log 自动分割,防止文件过大

背景描述

catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,所以我们需要借助其他工具进行切割(注意:catalina.out文件如果过大会影响性能)

工具

  • logrotate(linux 自带)
  • crontab(linux 自带)

具体实现

第一步

创建 logrotate 配置文件如下:

/etc/logrotate.d/tomcat
  • 1

第二步

将下面的内容复制到上面的配置文件中

/var/log/tomcat/catalina.out {   
	copytruncate   
	daily   
	rotate 7
	dateext
	dateformat -%Y%m%d   
	compress   
	missingok   
	size 5M  
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

关于上面的配置:

  • 确保上面的路径/var/log/tomcat/catalina.out 已调整为指向您的 tomcat 的 catalina.out
  • daily -每天轮换 catalina.out
  • rotate 7– 最多保留7 个日志文件
  • dateext – 日期作为后缀
  • dateformat -%Y%m%d –指定日期的格式
  • compress – 压缩旋转的文件
  • size – 如果 catalina.out 的大小大于5M ,则旋转

注意:每个配置指令都需要独占一行

第三步

编辑 crontab 配置文件:

vim /etc/crontab
  • 1

将下面的内容复制到上面文件的最后一行:

## 每天0点执行
0  0    * * *   root    /usr/sbin/logrotate /etc/logrotate.conf
  • 1
  • 2

其他日志配置

编辑 tomcat 日志配置文件:

vim ../apache-tomcat-8.5.69/conf/logging.properties
  • 1

修改后配置文件如下:

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.formatter =java.util.logging.SimpleFormatter
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 30
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.formatter =java.util.logging.SimpleFormatter
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 30
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.formatter =java.util.logging.SimpleFormatter
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 30
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.formatter =java.util.logging.SimpleFormatter
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 30
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

java.util.logging.ConsoleHandler.level = FINE
#java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.formatter =java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
java.util.logging.ConsoleHandler.limit = 1024000

# My special format:
java.util.logging.SimpleFormatter.format = %1$tF %1$tT [%4$-7s] %5$s %n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 自定义了的格式化器,增加时间戳
  • 只保留最近 30 天的日志文件

分享结束

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/202446
推荐阅读
相关标签
  

闽ICP备14008679号