在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日志的幾種方法。