Tomcat日志设定

Tomcat日志概述

Tomcat 日志信息分为两类:

访问日志

默认 tomcat 不记录访问日志,如下方法可以使 tomcat 记录访问日志

编辑${catalina}/conf/server.xml 文件(注:{catalina}是tomcat的安装目录),把以下的注释 (<!-- -->) 去掉即可。

 <!--
        <Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs"  prefix="localhost_access_log." suffix=".txt"
         pattern="common" resolveHosts="false"/>
  -->

通过对 2.1 示例中 pattern 项的修改,可以改变日志输出的内容。

该项值可以为: common 与 combined ,这两个预先设置好的格式对应的日志输出内容如下:

pattern 也可以根据需要自由组合 , 例如 pattern="%h %l"

对 于各 fields 字段的含义请参照:

http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html 中的 Access Log Valve 项。

运行日志

日志类型与级别

设定日志级别

修改 conf/logging.properties 中的内容,设定某类日志的级别

示例:

应用程序日志或系统日志

输出详细系统日志

使用Log4j输出详细系统日志信息,快速诊断启动故障

此例可弥补tomcat启动异常时输出的错误信息不足的问题,使用commons-logging和log4j搭配输出详尽的日志信息。

以window环境下tomcat5.5.27为例:

应用程序中使用log4j

更改日志输出内容

此句为将等级为INFO的日志信息输出到stdout和R这两个目的地。

等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO,WARN,ERROR的log信息,而DEBUG信息不会被显示。

此句为定义名为stdout的输出端是哪种类型,可以是:

org.apache.log4j.FileAppender 文件
org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件
org.apache.log4j.RollingFileAppender 文件大小到达指定尺寸的时候产生一个新的文件
org.apache.log4j.WriterAppender 将日志信息以流格式发送到任意指定的地方

此句为定义名为stdout的输出端的layout是哪种类型

org.apache.log4j.HTMLLayout 以HTML表格形式布局
org.apache.log4j.PatternLayout 可以灵活地指定布局模式
org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息

如果使用 pattern 布局就要指定的打印信息的具体格式 ConversionPattern ,打印参数如下:

具体的设定参照:http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html

%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以指定格式,如:%d{yyyymmddHH:mm:ss,SSS},输出:2002101822:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
[QC] 是log信息的开头,可以为任意字符,一般为项目简称。

Log4j相关资料