关于 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
原文地址:https://www.cnblogs.com/smlile-you-me/p/15205795.html