Log4j 配置文件的理解

Log4j 配置文件的理解

一、Log4j的好处

1 方便工程中日志处理,如开发的时候日志级别为debug,部署到正式服务器中改成info

则所有的debug级别的日志就会屏蔽掉

2 方便将日志写到统一的日志文件,并且文件格式统一

3 日志可以滚动添加,并且到达一定大小重新生成另一个日志文件

4 灵活配置日志文件地址 

二理解:

1)rootLogger定义与配置,用class得到的logger对象则会按照rootLogger的方式打印log

  

看一组配置:定义rootLogger并且

  指定日志级别为debug,程序中大于该级别的全部可以显示

  定义两个appender,并且在下面每个appender都配置相应的写日志信息 

  rootLogger :Logger logger = Logger.getLogger(DownloadServlet.class  );

  上面实例化logger都会按照下面的方式生成日志 

  1  stdout打印控制台 2 fileout生成日志文件 

#定义输出级别和输出appender

log4j.rootLogger=debug,stdout,fileout

#配置stdout这个apender输出形式

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 

log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %-5p %c.%M(%L) - %m%n

#配置fileout这个apender的输出

log4j.appender.fileout=org.apache.log4j.DailyRollingFileAppender 

log4j.appender.fileout.File=${catalina.home}/logs/test.log 

log4j.appender.fileout.layout=org.apache.log4j.PatternLayout 

log4j.appender.fileout.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}][%l]:%m%n 

2)自定义包,使用的时候Logger.getLogger("定义的appender名字");

下面调用的时候用Logger.getLogger("file");取得对象

 自定义一个apender_com的日志处理方式,自定义的日志名称为file。

log4j.logger.file=debug,apender_com

log4j.appender.apender_com=org.apache.log4j.DailyRollingFileAppender 

log4j.appender.apender_com.File=${catalina.home}/logs/apender_com.log 

log4j.appender.apender_com.DatePattern='.'yyyy-MM-dd 

log4j.appender.apender_com.layout=org.apache.log4j.PatternLayout 

log4j.appender.apender_com.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}][%l]:%m%n

3)带有包名和类型

 这中方式还没有测试具体怎么使用:log4j.logger.packageName[.ClassName]=level[,appender] 

三、appender参数的理解

log4j.appender.appenderName=someAppender(选择一种输出平台,文件还是控制台) 

[log4j.appender.appenderName.File=文件名](文件输出定义路径) 

log4j.appender.appenderName.layout=输出布局 

log4j.appender.appenderName.layout.ConversionPattern=输出格式 

    1)appenderName取值

a),org.apache.log4j.ConsoleAppender(控制台) 

b),org.apache.log4j.FileAppender(文件) 

c),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) 

d),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件,可通过log4j.appender.R.MaxFileSize=100KB设置文件大小,

           还可通过log4j.appender.R.MaxBackupIndex=1设置为保存一个备份文件)。 

e),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 

    2)log4j.appender.appenderName.layout指定日志信息的格式(布局)

org.apache.log4j.HTMLLayout(以HTML表格形式布局) 

org.apache.log4j.PatternLayout(可以灵活地指定布局模式) 

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) 

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。 

   3)log4j.appender.appenderName.layout.ConversionPattern格式化日志信息

%m 输出代码中指定的消息 

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 

%r 输出自应用启动到输出该log信息耗费的毫秒数 

%c 输出所属的类目,通常就是所在类的全名 

%t 输出产生该日志事件的线程名 

%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n” 

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

猜你喜欢

转载自username2.iteye.com/blog/2241924
今日推荐