2008年(14)
分类: 系统运维
2008-11-06 14:16:24
常用的Log4j的日志信息输出级别从高到低分别是ERROR、WARN、INFO、DEBUG。
配置根Logger语法为:
log4j.rootLogger = [Level] , appenderName1, appenderName2, ...
Level
是日志记录的优先级
appenderName用于指定日志信息输出目的地,您可以同时指定多个输出目的地。
配置日志信息输出目的地Appender语法为:
log4j.appender.appenderName
=
appender.class(详细类参考Log4j的appender类)
log4j.appender.appenderName.option
=
value(option指appender的属性如layout、File等)
Log4j提供的appender类有以下几种:
org.apache.log4j.ConsoleAppender(输出到控制台),
org.apache.log4j.FileAppender(输出到文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个新的日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置日志信息的格式语法为:
log4j.appender.appenderName.layout
=
appender.layout.class(布局类参考log4j提供的layout)
log4j.appender.appenderName.layout.option
=
value
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(HTML表格形式),
org.apache.log4j.PatternLayout(自己指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
其中,自定义布局模式常用参数如下:
%m 输出代码中指定的消息 (在代码中使用Logger对象输出的消息,参考下面的例子)
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:class.function(className:LineNumber)。
%p
输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
举例:
前提:导入log4j的jar包(log4j.1.2.15.jar)
Log4j.properties(该文件放在src目录下),内容如下:
log4j.rootLogger=INFO,fileAppender,daily #Output the log messages to log.file #log4j.appender.fileAppender =org.apache.log4j.FileAppender #log4j.appender.fileAppender.file=filelog.log #log4j.appender.fileAppender.layout= org.apache.log4j.PatternLayout #log4j.appender.fileAppender.layout.ConversionPattern=>>%p:%d{yyyy-MM-dd HH:mm:ss}>>>%l :%n>>>>>>%m%n #output a file per day log4j.appender.daily = org.apache.log4j.DailyRollingFileAppender log4j.appender.daily.file=filelog.log log4j.appender.daily.DatePattern = '.'yyyy-MM-dd log4j.appender.daily.layout= org.apache.log4j.PatternLayout log4j.appender.daily.layout.ConversionPattern=>>%p:%d{yyyy-MM-dd HH:mm:ss}>>>%l :%n>>>>>>%m%n |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="org.apache.log4j.Logger" %> DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test log4jtitle> head> <body> <% Logger log = Logger.getLogger(this.getClass().getName()); log.debug("Debug Infor"); log.info("test log4j--->info"); log.warn("warn Infor"); %> body> html> |
日志输出信息为:
>>INFO:2008-11-06 12:08:02>>>org.apache.jsp.index_jsp._jspService(index_jsp.java:56) : >>>>>>test log4j--->info >>WARN:2008-11-06 12:08:02>>>org.apache.jsp.index_jsp._jspService(index_jsp.java:57) : >>>>>>warn Infor |