首页主机资讯tomcat日志配置centos指南

tomcat日志配置centos指南

时间2025-10-01 05:02:03发布访客分类主机资讯浏览1380
导读:Tomcat日志配置CentOS指南 一、Tomcat日志基础认知 Tomcat的日志主要分为运行日志(记录应用运行状态、错误信息)和访问日志(记录HTTP请求详情)。默认情况下,运行日志由logging.properties配置,访问日志...

Tomcat日志配置CentOS指南

一、Tomcat日志基础认知

Tomcat的日志主要分为运行日志(记录应用运行状态、错误信息)和访问日志(记录HTTP请求详情)。默认情况下,运行日志由logging.properties配置,访问日志由server.xml配置,均存储在${ CATALINA_HOME} /logs目录下(CATALINA_HOME为Tomcat安装目录)。

二、定位Tomcat日志文件

进入Tomcat的logs目录,常见日志文件说明:

  • catalina.out:主运行日志,包含Tomcat启动/停止信息、未捕获的异常及运行时消息;
  • localhost.date.log:Tomcat内部组件(如JSP编译、Servlet初始化)的日志;
  • manager/date.log:Tomcat Manager应用的访问及操作日志;
  • host-manager/date.log:Tomcat Host Manager应用的日志;
  • localhost_access_log.date.txt:HTTP访问日志(需通过server.xml开启)。

三、实时查看与搜索日志

1. 实时查看运行日志

使用tail -f命令跟踪catalina.out的最新内容:

cd $CATALINA_HOME/logs
tail -f catalina.out

Ctrl+C停止跟踪。

2. 搜索特定时间段日志

使用sed命令截取指定时间范围的日志(例如2025-09-01至2025-09-02):

sed -n "/2025-09-01/,/2025-09-02/p" catalina.out >
 /tmp/tomcat_specific_logs.txt

将结果保存到/tmp/tomcat_specific_logs.txt中。

3. 使用journalctl查看Systemd日志

若Tomcat以Systemd服务运行(默认方式),可通过以下命令查看服务日志:

journalctl -u tomcat -f

-f参数表示实时跟踪,-u tomcat指定服务名称(需与systemctl start tomcat中的服务名一致)。

四、日志轮转配置(防止日志过大)

1. 使用logrotate工具

Tomcat默认的日志轮转配置文件位于/etc/logrotate.d/tomcat,编辑该文件调整规则(示例):

/var/log/tomcat/catalina.out {
    
    daily           每天轮转
    rotate 7        保留最近7天的日志
    compress        压缩旧日志(生成.gz文件)
    missingok       若日志文件不存在也不报错
    notifempty      若日志为空则不轮转
    create 0640 tomcat tomcat   创建新日志文件,权限0640,属主属组为tomcat
    postrotate
        /bin/kill -HUP `cat /var/run/tomcat.pid` 2>
/dev/null || true   通知Tomcat重新打开日志文件
    endscript
}
    

2. 手动触发轮转

修改配置后,可通过以下命令立即执行轮转:

logrotate -f /etc/logrotate.d/tomcat

3. 自定义脚本轮转(可选)

若需更灵活的控制(如按大小轮转),可编写脚本tomcatLog.sh

!/bin/bash
DIR="/opt/tomcat/logs"
LOGS="$DIR/catalina.out"
DATE=$(date +%Y-%m-%d)
BACKUP_FILE="$DIR/catalina.$DATE.bak"
ARCHIVE_FILE="$DIR/catalina.$DATE.tar.gz"

if [ -d "$DIR" ];
     then
    cd "$DIR"
    cp "$LOGS" "$BACKUP_FILE"   备份原日志
    tar -czf "$ARCHIVE_FILE" "$BACKUP_FILE"   压缩备份
    rm -f "$BACKUP_FILE"   删除备份文件
    >
     "$LOGS"   清空原日志
else
    echo "Directory does not exist: $DIR"
fi

赋予执行权限并添加定时任务(每天凌晨2点执行):

chmod +x $DIR/tomcatLog.sh
crontab -e
 添加以下行
0 2 * * * $DIR/tomcatLog.sh

五、日志级别设置(控制日志详细程度)

Tomcat使用java.util.logging框架,日志级别从低到高为:SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST。级别越高,日志越详细。

1. 修改logging.properties文件

编辑${ CATALINA_HOME} /conf/logging.properties,调整以下配置:

 全局日志级别(默认INFO)
.level=INFO

 控制台日志级别(默认INFO)
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

 文件日志级别(默认INFO)
java.util.logging.FileHandler.level=INFO
java.util.logging.FileHandler.pattern=%h/tomcat/logs/app.%u.%g.log
java.util.logging.FileHandler.limit=50000   单个日志文件最大50MB
java.util.logging.FileHandler.count=10     保留10个备份文件
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

 特定组件的日志级别(如localhost)
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level=INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers=2localhost.org.apache.juli.AsyncFileHandler

2. 重启Tomcat生效

修改完成后,重启Tomcat使配置生效:

systemctl restart tomcat

六、访问日志配置(记录HTTP请求)

访问日志默认未开启,需通过server.xml配置。编辑${ CATALINA_HOME} /conf/server.xml,找到< Host> 标签,添加或修改AccessLogValve配置:

<
    Valve className="org.apache.catalina.valves.AccessLogValve" 
       directory="logs" 
       prefix="localhost_access_log" 
       suffix=".txt" 
       pattern="%h %l %u %t "%r" %s %b %D" 
       resolveHosts="false"/>

  • directory:访问日志存储目录(相对于CATALINA_HOME);
  • prefix:日志文件前缀(如localhost_access_log);
  • suffix:日志文件后缀(如.txt);
  • pattern:日志格式,常用占位符:
    • %h:客户端IP地址;
    • %t:请求时间;
    • %r:请求行(如GET /index.html HTTP/1.1);
    • %s:响应状态码(如200、404);
    • %b:响应大小(字节);
    • %D:请求处理时间(毫秒);
  • resolveHosts:是否解析客户端主机名(false表示不解析,提升性能)。

七、集成第三方日志框架(可选)

若需要更强大的日志功能(如异步日志、日志分级存储),可集成Log4j或Logback。

1. 集成Log4j2步骤

(1)添加依赖

下载Log4j2 JAR包(log4j-api-2.x.x.jarlog4j-core-2.x.x.jarlog4j-jul-2.x.x.jar),放入${ CATALINA_HOME} /lib目录。

(2)移除冲突JAR包

删除${ CATALINA_HOME} /bin/tomcat-juli.jar${ CATALINA_HOME} /lib/tomcat-juli-adapters.jar(避免与Log4j冲突)。

(3)创建Log4j配置文件

${ CATALINA_HOME} /lib目录下创建log4j2.xml,示例配置:

<
    ?xml version="1.0" encoding="UTF-8"?>
    
<
    Configuration status="WARN">
    
    <
    Appenders>
    
        <
    Console name="Console" target="SYSTEM_OUT">
    
            <
PatternLayout pattern="%d{
yyyy-MM-dd HH:mm:ss}
 %-5p %c{
1}
    :%L - %m%n"/>
    
        <
    /Console>
    
        <
RollingFile name="File" fileName="${
catalina.base}
/logs/app.log"
                     filePattern="${
catalina.base}
/logs/app-%d{
yyyy-MM-dd}
    .log.gz">
    
            <
PatternLayout pattern="%d{
yyyy-MM-dd HH:mm:ss}
 %-5p %c{
1}
    :%L - %m%n"/>
    
            <
    Policies>
    
                <
    TimeBasedTriggeringPolicy interval="1" modulate="true"/>
    
            <
    /Policies>
    
            <
    DefaultRolloverStrategy max="7"/>
    
        <
    /RollingFile>
    
    <
    /Appenders>
    
    <
    Loggers>
    
        <
    Root level="INFO">
    
            <
    AppenderRef ref="Console"/>
    
            <
    AppenderRef ref="File"/>
    
        <
    /Root>
    
    <
    /Loggers>
    
<
    /Configuration>
    

(4)重启Tomcat

systemctl restart tomcat

八、注意事项

  1. 权限问题:确保Tomcat用户(通常为tomcat)对日志目录有读写权限;
  2. 磁盘空间:定期清理旧日志,避免占用过多磁盘空间;
  3. 备份策略:重要日志需定期备份到远程存储(如NFS、S3);
  4. 性能影响:高频日志(如FINEST级别)可能影响Tomcat性能,生产环境建议使用INFOWARNING级别。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: tomcat日志配置centos指南
本文地址: https://pptw.com/jishu/715266.html
如何利用Filebeat进行CentOS服务器性能监控 在CentOS上如何配置Filebeat的网络设置

游客 回复需填写必要信息