log4j使用总结

来源:互联网 发布:ajax javascript区别 编辑:程序博客网 时间:2024/06/05 22:41

 一、log4j引入三部曲

1)引入import jar包(最新1.2.17)  http://logging.apache.org/
2)新建配置文件log4j.properties,置于project根目录下
3)代码引入:
    Logger logger  =  Logger.getLogger(TestLog4j. class );
            logger.debug( " debug " );

            logger.error( " error " );

二、log4j.properties配置文件说明:

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,
它可接key=value格式的设置或xml格式的设置信息。通过配置,
可以创建出Log4J的运行环境。


log4j.properties配置文件范例:

log4j.rootLogger=ERROR,stdout,stderr#log4j.logger.syslog=stdout######################### logger ############################### stdout is set to be a ConsoleAppender.log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.conversionPattern=%d [%t] %-5p %c - %m%n# stderr is set to be a FileAppender.log4j.appender.stderr=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.stderr.File=log/stderr.loglog4j.appender.stderr.Append=truelog4j.appender.stderr.layout=org.apache.log4j.PatternLayoutlog4j.appender.stderr.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%nlog4j.logger.task=INFO,tasklog4j.appender.task=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.task.Threshold = INFOlog4j.appender.task.File=log/pcbaby/task.loglog4j.appender.task.DatePattern = '.'yyyy-MM-ddlog4j.appender.task.Append=truelog4j.appender.task.layout=org.apache.log4j.PatternLayoutlog4j.appender.task.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%nlog4j.additivity.task=false

1、配置说明

#配置根Logger

log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …


#配置日志信息输出目的地Appender

log4j.appender.appenderName  =  fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1  =  value1

log4j.appender.appenderName.optionN  =  valueN


注意:

A、第一行appenderName为自定义appderName,在log4j.rootLogger设置中使用;
value可设值如下:

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


B、第二行开始option为输出选项,如DailyRollingFileAppender选项:

Threshold=WARN  指定日志信息的最低输出级别,默认为DEBUG。
ImmediateFlush=true  表示所有消息都会被立即输出,设为false则不输出,默认值是true。
Append=false  true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认true。
File=D:/logs/logging.log4j  指定当前消息输出到logging.log4j文件中。
DatePattern='.'yyyy-MM  每月滚动一次日志文件,即每月产生一个新的日志文件。
当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。
另外,也可以指定按周、天、时、分等来滚动日志文件,对应的格式如下:
1)'.'yyyy-MM:每月
2)'.'yyyy-ww:每周
3)'.'yyyy-MM-dd:每天
4)'.'yyyy-MM-dd-a:每天两次
5)'.'yyyy-MM-dd-HH:每小时
6)'.'yyyy-MM-dd-HH-mm:每分钟



#配置日志信息的格式(布局)

log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1  =  value1

log4j.appender.appenderName.layout.optionN  =  valueN


注意:

A、第一行Layout为日志输出格式,Log4j提供的layout有以下几种:

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

B、第二行开始option为输出格式选项,Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

%p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%c   输出所属的类目,通常就是所在类的全名
%t   输出产生该日志事件的线程名
%m   输出代码中指定的消息
%n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921



2、日志记录器(Logger)的可用级别(优先级从低到高),共有5级:

DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。

INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。

WARN level表明会出现潜在错误的情形。

ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。

FATAL level指出每个严重的错误事件将会导致应用程序的退出。

PS:Log4j建议只使用前四个级别


3、自定义appenderName变量名,如范例中第三段task定时任务的配置,代码中以字符串形式获取:

protected  Log log = LogFactory.getLog("task");

注意:

log4j.additivity.task=false
子Logger 是否继承 父Logger 的 输出源(appender) 的标志。





1 0
原创粉丝点击