logrotate 是Linux系统自动的服务,nginx等也都用它来自动切割,简单可靠。
不过tomcat假如移动重命名文件后再创建文件 日志没办法继续写入的,所以要使用 copytruncate 模式 ,示例如下 :
在/etc/logrotate.d目录下新建配置文件,如 tomcat
/apps/tomcat/apache-tomcat-9.*.*/logs/catalina.out{
copytruncate
daily
dateext
nocompress
missingok
rotate 14
size 1500M
create 640 tomcat tomcat
}
测试验证服务: /usr/sbin/logrotate -f -v /etc/logrotate.d/tomcat
需要验证1 文件自动切割了 2. catalina.out文件自动清理 并且日志还在继续写入该文件 即可 。
设置 size 之后 ,似乎没达到size时 会忽略切割,直到文件大于size之后才会触发真实的切割。