在CentOS中,Tomcat日志分割可以通过几种不同的方法实现,以下是几种常见的方法:
Cronolog是一个用于日志文件分割的工具,它可以按照时间顺序将日志文件分割成不同的文件,并且可以很容易地配置和管理。
yum install cronolog
编辑Tomcat目录下的catalina.sh
文件,在CATALINA_OUT
变量的设置处添加Cronolog的路径和日志文件名模板。例如:
CATALINA_OUT="/usr/local/tomcat/logs/catalina.%Y%m%d.out"
修改配置文件后,需要重启Tomcat服务以使更改生效。
/bin/shutdown.sh
/bin/startup.sh
Logrotate是Linux系统自带的日志管理工具,它可以定期分割、压缩、删除和邮件通知日志文件。
yum install logrotate
创建或编辑/etc/logrotate.d/tomcat
文件,添加以下内容:
/home/odysee/General/tomcat8.5/logs/catalina.out {
daily
copytruncate
rotate 30
compress
notifempty
dateext
missingok
}
这个配置表示每天分割一次catalina.out
文件,保留最近30天的日志文件,并且压缩旧的日志文件。
在执行强制分割之前,可以使用以下命令测试配置是否正确:
logrotate -d /etc/logrotate.d/tomcat
如果没有错误,可以使用以下命令强制执行分割:
logrotate -f /etc/logrotate.d/tomcat
对于Tomcat 10及以上版本,可以使用Log4j 2.x来实现日志分割。
将log4j-core-2.15.0.jar
和log4j-api-2.15.0.jar
添加到Tomcat的lib
目录下。
在Tomcat的conf
目录下创建log4j2.xml
文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="%d %p %c{1.} [%t] %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
在catalina.sh
或catalina.bat
脚本中添加以下JVM参数:
-Dlog4j.configurationFile=$CATALINA_BASE/conf/log4j2.xml
添加参数后,重启Tomcat以使配置生效。
以上就是在CentOS中分割Tomcat日志的几种方法。