在Debian系统中,Tomcat的日志级别设置主要通过**logging.properties**配置文件完成,需结合日志用途、性能影响及维护需求,合理分配不同组件的日志级别。以下是具体步骤及建议:
Tomcat的日志配置文件位于$CATALINA_BASE/conf/logging.properties(如/opt/tomcat/conf/logging.properties),所有日志级别及输出方式的调整均在此文件中完成。
Tomcat采用Java标准日志级别,从高到低依次为:
原则:级别越高,日志量越少;级别越低,日志量越大(需权衡性能与排查需求)。
若需统一控制所有日志的输出级别,可修改logging.properties中的.level属性(根日志记录器):
.level = INFO # 生产环境推荐:平衡信息量与性能
# .level = WARNING # 仅记录重要警告及错误(低日志量)
# .level = FINE # 开发/调试环境:记录详细信息(高日志量)
修改后需重启Tomcat使配置生效。
Tomcat的日志分为catalina(主容器)、localhost(本地主机应用)、manager(管理界面)、host-manager(虚拟主机管理)等类别,建议针对不同组件设置差异化级别:
INFO或WARNING:1catalina.org.apache.juli.FileHandler.level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
FINE,生产环境设为INFO:2localhost.org.apache.juli.FileHandler.level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
WARNING(避免记录过多无意义的管理日志):3manager.org.apache.juli.FileHandler.level = WARNING
4host-manager.org.apache.juli.FileHandler.level = WARNING
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = WARNING
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = WARNING
org.apache.coyote.level = FINE # 记录HTTP请求/响应详情(如URL、状态码)
org.apache.tomcat.util.scan.StandardJarScanFilter.level = FINE # 记录JAR包扫描过程(排查类加载问题)
需为这些包指定对应的处理器(如2localhost.org.apache.juli.FileHandler),避免日志输出到无关文件。日志可通过控制台(开发调试)或文件(生产环境)输出,建议生产环境优先使用文件输出:
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
上述配置会将catalina日志输出到${catalina.base}/logs/catalina.log文件中。使用logrotate工具定期清理旧日志,防止catalina.out等文件过大占用磁盘空间。创建/etc/logrotate.d/tomcat文件,添加以下配置:
/opt/tomcat/logs/catalina.out {
daily # 每天轮转一次
rotate 14 # 保留14天备份
copytruncate # 复制原文件后清空(不影响Tomcat运行)
compress # 压缩旧日志(节省空间)
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不轮转
}
配置完成后,logrotate会自动按计划执行日志轮转。
修改logging.properties后,重启Tomcat使配置生效:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
重启后,检查${catalina.base}/logs目录下的日志文件(如catalina.out、localhost.log),确认日志级别是否符合预期(如INFO级别日志应包含常规运行信息,FINE级别日志应包含详细调试信息)。
通过以上步骤,可根据Debian环境下Tomcat的实际使用场景(生产/开发),合理设置日志级别,在保证排查需求的同时,避免日志过多影响系统性能。