码迷,mamicode.com
首页 > 其他好文 > 详细

log4j配置文件学习

时间:2014-09-06 18:42:33      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:log4j配置文件学习

不要拷贝,即使自己写一遍也能学到东西:原地址

项目交接了,代码敏感(老大自己说的,我超不赞同)的老大们写的代码太牛了(从来不加注释)无语了,前期任务多,时间紧抱怨看段代码太浪费时间和精力,一天下来眼睛布满血丝。现在免疫了,抛开了太多顾虑,看一段代码很高兴啊哈哈(后期等死咧,任务超多,假期前列了一下18项,没自己时间,不过可以睡个好觉)

交接的项目中存在solr和ssh的项目,测试那边想将solr日志和ssh的日志分别打印出来,便于查找,自己还要模拟spring编写测试,所以查看了一下知识就直接帮他们配置了一下,但是配置两个地方先使用,现在有时间了,好好学习一下,后期帮他们修改一下,完善项目。

<pre name="code" class="html">log4j.rootLogger=INFO, CONSOLE, A
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{HH:mm:ss} (%F:%L) - %m%nlog4j.appender.A =org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A.File = ../webapps/r2k/logs/log.txtlog4j.appender.A.layout=org.apache.log4j.PatternLayoutlog4j.appender.A.layout.ConversionPattern=[%-5p] %d{HH:mm:ss} (%F:%L) - %m%nlog4j.logger.com.apabi=DEBUG


上面的:

一、log4j.rootLogger=INFO, CONSOLE, A
其中rootLogger定义了日志输出的等级为INFO. 和输出地方为CONSOLE,A两个地方(可以理解为两个选择)。输出等级可以分为OFF<FATAL<ERROR<WARING<INFO<DEBUG<ALL,其中OFF最低,当选择OFF时不打出任何信息,INFO则打印出OFF,FATAL,ERROR,WARING,INFO信息,其他选项信息就可以理解了。CONSOLE ,A分别找到下面的一些配置信息


二、log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
这里定义了CONSOLE输出端的类型,所有的选择如下:

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

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

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

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

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


三、log4j.appender.A.File = ../webapps/r2k/logs/log.txt
这里定义了输出文件夹,这里动态的制定了文件的地址,如在项目的log4j则配置日志文件到tomcat的webapps下的r2k项目的logs文件夹下的log.txt


四、log4j.appender.A.layout=org.apache.log4j.PatternLayout
这里定义了输出文件以什么样的形式进行展示,展示格式的所有选择如下:

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

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

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

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


五、log4j.appender.A.layout.ConversionPattern=[r2k][%-5p] %d{HH:mm:ss} (%F:%L) - %m%n
<span style="font-family: Calibri;font-size:12px; line-height: 25.1875px;"> </span><span style="font-family: Calibri;font-size:12px; line-height: 25.1875px;">log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n</span>

如果使用pattern布局就要指定的打印信息的具体格式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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

[QC]是log信息的开头,可以为任意字符,一般为项目简称。

输出的信息

[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean ‘MyAutoProxy‘

具体讲解可参照第三部分定义配置文件中的格式化日志信息。


六、log4j.logger.com.apabi=DEBUG
指定项目中com.apabi包下的类的输出日志等级定义为DEBUG

 

 七、log4j.logger.org.apache.commons=ERROR
  log4j.logger.org.apache.struts=WARN

这两句是struts的包。

    

八、log4j.logger.org.springframework=DEBUG

此句为Spring的包。


九、 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
    log4j.logger.org.hibernate=DEBUG

此两句是hibernate的包。


  1. log4j.logger.com.fuyou.log.test2=debug,test2log  
  2.   
  3. log4j.logger.com.fuyou.log.test=debug,testlog

不同的包输出到不同的地方


4,log4j的使用

a)、从www.apache.org下载commongs-logging包;

b)、在你的class里面定义protected final Log logger = LogFactory.getLog(this.getClass());
c)、在需要日志输出的地方logger.info(...),logger.error(...),logger.debug(...),....注意,在使用时前最好做个判断if (logger.isDebugEnabled()){logger.debug("...");}其他类似。

1)需要考证,如果我不配置地方,呢么当项目来临时选择哪个

2)配置了com.hibernat= debug,而com.hibernate.de=info这个时候声明有没有顺序,是否会覆盖,需要参看源代码

log4j配置文件学习

标签:log4j配置文件学习

原文地址:http://blog.csdn.net/chunlei_zhang/article/details/39102315

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!