• 关于 Tomcat 日志


    Tomcat目录

    安装目录:/usr/local/apache-tomcat-9.0.52
    数据目录:/data/app/tomcat-weixinapp-820{2..6}
    

    定义日志格式

    [root@node3 ~]# vim /usr/local/apache-tomcat-9.0.52/conf/server.xml
    ....
        ....
    
    # 定义数据文件位置
    <Context docBase="/data/code/tomcat-weixinapp/tomcat-weixinapp" path="" reloadable="false" />
    ========================= 定义 localhost_access_log 日志格式  开始================================
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/home/logs"            ===> directory要改
                   prefix="localhost_access_log" suffix=".log"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    ========================= 定义 localhost_access_log 日志格式  结束================================
          </Host>
        </Engine>
      </Service>
    </Server>
    
    
    
    参数详解:
    className:官方说明必须按照默认配置不可更改。 
    directory:日志文件位置。 
    prefix:日志文件前缀。 
    suffix:日志文件后缀。 
    pattern:日志模式参数,设置参数很丰富,参数说明见下表。 
    resolveHosts:如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址。
    
    pattern 参数: 
    %a - 远端IP地址 
    %A - 本地IP地址 
    %b - 发送的字节数,不包括HTTP头,如果为0,使用”-” 
    %B - 发送的字节数,不包括HTTP头 
    %h - 远端主机名(如果resolveHost=false,远端的IP地址) 
    %H - 请求协议 
    %l - 从identd返回的远端逻辑用户名(总是返回 ‘-‘) 
    %m - 请求的方法(GET,POST,等) 
    %p - 收到请求的本地端口号 
    %q - 查询字符串(如果存在,以 ‘?’开始) 
    %r - 请求的第一行,包含了请求的方法和URI 
    %s - 响应的状态码 
    %S - 用户的session ID 
    %t - 日志和时间,使用通常的Log格式 
    %u - 认证以后的远端用户(如果存在的话,否则为’-‘) 
    %U - 请求的URI路径 
    %v - 本地服务器的名称 
    %D - 处理请求的时间,以毫秒为单位 
    %T - 处理请求的时间,以秒为单位
    

    定义日志等级和日志位置目录

    方法1、
    [root@node3 ~]# vim /path/to/path/tomcat/bin/catalina.sh
    ····
        ····
    if [ -z "$CATALINA_OUT" ] ; then
    #  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
      CATALINA_OUT=/home/logs/catalina.out                ===>要改
    fi
    
    
    方法2、
    [root@node3 ~]# vim /usr/local/apache-tomcat-9.0.52/conf/logging.properties
    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.maxDays = 90
    1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8                     ===>字符集
    
    # 2localhost.org.apache.juli.AsyncFileHandler.level = FINE
    # 2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    # 2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
    # 2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
    # 2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    
    # 3manager.org.apache.juli.AsyncFileHandler.level = FINE
    # 3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    # 3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
    # 3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
    # 3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    
    # 4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
    # 4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    # 4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
    # 4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
    # 4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    
    java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
    java.util.logging.ConsoleHandler.encoding = UTF-8
    

    日志等级

    [root@node3 ~]# vim /usr/local/apache-tomcat-9.0.52/conf/logging.properties
    Log level Description
    
    SEVERE:(highest) Captures exception and Error
    WARNING:Warning messages
    INFO:Informational message, related to the server activity
    CONFIG: Configuration message
    FINE:Detailed activity of the server transaction (similar to debug)
    FINER:More detailed logs than FINE
    FINEST:(least) Entire flow of events (similar to trace)
    

    日志切割

    [root@node3 ~]# vim /etc/logrotate.d/tomcatrotate
    /data/app/tomcat-8202/logs/catalina.out{
        daily
        rotate 15
        missingok
        dateext
        compress
        notifempty
        copytruncate
        dateext
        dateformat -%Y-%m-%d
    }
    /data/app/tomcat-8203/logs/catalina.out{
        daily
        rotate 15
        missingok
        dateext
        compress
        notifempty
        copytruncate
        dateext
        dateformat -%Y-%m-%d
    }
    
    
    # 立即截断日志
    [root@node3 ~]# logrotate --force /etc/logrotate.d/tomcatrotate
    选项注释
    -f:选项来强制logrotate轮循日志文件
    -v:参数提供了详细的输出
    
    
    # 要为某个特定的配置调用logrotate,执行一次切割任务测试
    [root@node3 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcatrotate
    
    # 设置logrotate定时任务
    [root@node3 ~]# crontab -e
    0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcatrotate & >/dev/null
    
    
    # 重启crond
    [root@node3 ~]# systemctl restart crond
    
    
    [root@node3 ~]# for i in {2..6};do ll -h /data/app/tomcat-weixinapp-820$i/logs/catalina.out-20210830.gz;done
    -rw-r----- 1 tomcat root 73M Aug 30 21:20 /data/app/tomcat-weixinapp-8202/logs/catalina.out-20210830.gz
    -rw-r----- 1 tomcat root 23M Aug 30 21:20 /data/app/tomcat-weixinapp-8203/logs/catalina.out-20210830.gz
    -rw-r----- 1 tomcat root 4.3M Aug 30 21:25 /data/app/tomcat-weixinapp-8204/logs/catalina.out-20210830.gz
    -rw-r----- 1 tomcat root 27M Aug 30 21:25 /data/app/tomcat-weixinapp-8205/logs/catalina.out-20210830.gz
    -rw-r----- 1 tomcat root 49M Aug 30 21:37 /data/app/tomcat-weixinapp-8206/logs/catalina.out-20210830.gz
    
  • 相关阅读:
    探索式测试实践之路
    管理是什么?真正的管理者是,“管”+“理”!
    JavaScript中的函数式编程
    node js的终端中 console.log 嵌套对象会被折叠的问题
    apt-get install的默认安装路径
    nodejs 事件循环 试题思考
    仅20行的JavaScript模板引擎
    js 驼峰命名转烤串
    git reset 进阶
    linux 拷贝文本到剪切板
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/15205795.html
Copyright © 2020-2023  润新知