温馨提示×

怎样设置Ubuntu Tomcat日志级别

小樊
47
2025-09-22 15:06:49
栏目: 智能运维

怎样设置Ubuntu Tomcat日志级别

1. 准备工作

在设置日志级别前,需确认Tomcat的安装路径(常见路径如/opt/tomcat/var/lib/tomcat9/usr/share/tomcat)。可通过以下命令快速定位:

ps -ef | grep tomcat 

输出中会显示Tomcat的安装目录(如/opt/tomcat)。

2. 修改logging.properties文件(核心步骤)

logging.properties是Tomcat的日志配置文件,位于conf目录下。

  • 打开文件:使用文本编辑器(如nano)修改文件,需root权限:
    cd /opt/tomcat/conf # 替换为你的Tomcat安装目录 sudo nano logging.properties 
  • 定位日志记录器:文件中包含多个日志记录器配置,常见的有:
    • org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level:控制应用层日志(如Servlet、JSP)。
    • .level:根日志记录器(影响所有未单独配置的组件,默认INFO)。
    • org.apache.coyote.level:控制HTTP连接器日志(如请求响应信息)。
    • java.sql.ConnectionPool.level:控制数据库连接池日志(如HikariCP)。
  • 修改日志级别:将目标记录器的level值改为所需级别(从低到高依次为):
    • OFF:关闭所有日志。
    • SEVERE:仅记录严重错误(如服务器崩溃)。
    • WARNING:记录警告和严重错误(默认级别,适合生产环境)。
    • INFO:记录常规信息(如启动/停止信息,适合日常监控)。
    • CONFIG:记录配置信息(如加载的配置文件)。
    • FINE:记录详细调试信息(如方法调用)。
    • FINER/FINEST:记录最详细调试信息(如SQL语句、线程堆栈,适合开发调试)。
      例如,将应用层日志级别设为FINE
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE 
  • (可选)调整处理器:日志处理器(handlers)决定日志输出位置(控制台、文件)。默认配置如下:
    handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler 
    可修改处理器参数(如文件路径、轮转策略),例如开启文件轮转(保留30天):
    1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 1catalina.org.apache.juli.AsyncFileHandler.rotatable = true 1catalina.org.apache.juli.AsyncFileHandler.maxDays = 30 

3. 保存并退出编辑器

  • 若使用nano,按Ctrl+XYEnter保存并退出。

4. 重启Tomcat使配置生效

修改配置后,必须重启Tomcat才能应用新日志级别:

sudo systemctl restart tomcat # 大多数Ubuntu系统(systemd) # 或 sudo service tomcat restart # 旧版本系统(SysVinit/Upstart) 

5. 验证日志级别

  • 查看Tomcat日志文件(默认路径:${catalina.base}/logs/catalina.outlogs/catalina.log),确认日志级别是否生效。
  • 示例:若设置为FINE,应能看到更详细的调试信息(如Servlet初始化过程);若设置为WARNING,则只会显示警告及以上级别日志。

注意事项

  • 性能影响:高级别日志(如FINEST)会显著增加磁盘I/O和日志文件大小,生产环境建议使用WARNINGINFO
  • 组件隔离:可针对不同组件设置不同日志级别(如将数据库连接池设为FINE,应用层设为INFO),避免无关日志干扰。
  • 日志轮转:建议配置日志轮转(如maxDays=30),防止日志文件过大占用磁盘空间。

0