标签:
Tomcat 日志信息分为两类:
默认 tomcat 不记录访问日志,如下方法可以使 tomcat 记录访问日志
编辑${catalina}/conf/server.xml 文件(注:{catalina}是tomcat的安装目录),把以下的注释 (<!-- -->) 去掉即可。
1
2
3
4
5
|
<!--
<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 中的内容,设定某类日志的级别
示例:
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.level = OFF
1catalina.org.apache.juli.FileHandler.level = ALL
使用Log4j输出详细系统日志信息,快速诊断启动故障
此例可弥补tomcat启动异常时输出的错误信息不足的问题,使用commons-logging和log4j搭配输出详尽的日志信息。
以window环境下tomcat5.5.27为例:
1
|
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
log4j.rootLogger=WARN,stdout,file
## 日志直接输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %l - %m%n
## 日志输出到文件 SystemOut.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=E:/tomcat5.5/ logs/SystemOut.log
log4j.appender.file.Append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %l - %m%n
|
将 set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%/bin/bootstrap.jar 替换为 set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%/bin/bootstrap.jar;%CATALINA_HOME%/bin/commons-logging-1.1.jar;%CATALINA_HOME%/bin/log4j-1.2.13.jar;%CATALINA_HOME%/bin
1
2
3
4
5
6
|
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug, stdout
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
importorg.apache.log4j.Logger;
public class LogClass {
private static org.apache.log4j.Logger log = Logger
.getLogger (LogClass. class );
public static void main(String[] args) {
log .trace("Trace");
log .debug("Debug");
log .info("Info");
log .warn("Warn");
log .error("Error");
log .fatal("Fatal");
}
}
|
10:38:24,797 DEBUG LogClass:11 - Debug 10:38:24,812 INFO LogClass:12 - Info 10:38:24,812 WARN LogClass:13 - Warn 10:38:24,812 ERROR LogClass:14 - Error 10:38:24,812 FATAL LogClass:15 - Fatal
将 log4j.rootLogger= debug , stdout 变更为 log4j.rootLogger=Warn, stdout 输出内容如下: 10:41:15,488 WARN LogClass:13 - Warn 10:41:15,504 ERROR LogClass:14 - Error 10:41:15,504 FATAL LogClass:15 – Fatal
此句为将等级为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信息的开头,可以为任意字符,一般为项目简称。 |
标签:
原文地址:http://my.oschina.net/liting/blog/499886