设置Tomcat日志轮转(log rotation)可以帮助你管理日志文件,防止它们占用过多磁盘空间。以下是几种常见的方法:
如果你使用的是Log4j或Logback作为日志框架,可以通过配置文件来实现日志轮转。
在log4j.properties
或log4j2.xml
文件中配置日志轮转:
log4j.properties:
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/path/to/tomcat/logs/catalina.out
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j2.xml:
<Configuration status="WARN">
<Appenders>
<RollingFile name="File" fileName="/path/to/tomcat/logs/catalina.out"
filePattern="/path/to/tomcat/logs/catalina.%d{yyyy-MM-dd}.out.gz">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
在logback.xml
文件中配置日志轮转:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/path/to/tomcat/logs/catalina.out</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/path/to/tomcat/logs/catalina.%d{yyyy-MM-dd}.out.gz</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
</appender>
<root level="info">
<appender-ref ref="FILE" />
</root>
</configuration>
Tomcat自带了一个日志管理工具log4j-tomcat.xml
,你可以修改这个文件来实现日志轮转。
$CATALINA_BASE/conf
目录下的logging.properties
文件。java.util.logging.FileHandler.pattern
属性来指定日志文件的路径和轮转策略。java.util.logging.FileHandler.pattern = /path/to/tomcat/logs/catalina.%g.out
java.util.logging.FileHandler.limit = 10240000
java.util.logging.FileHandler.count = 10
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
你也可以使用外部工具如logrotate
来管理Tomcat日志文件。
logrotate
配置文件,例如/etc/logrotate.d/tomcat
:/path/to/tomcat/logs/*.log {
daily
missingok
rotate 10
compress
notifempty
create 640 tomcat adm
}
logrotate
服务正在运行,并定期检查日志文件。通过以上方法,你可以有效地管理Tomcat日志文件,防止它们占用过多磁盘空间。选择适合你项目的方法进行配置即可。