知识积累(一)——log4j

Log4j主要有两种配置格式 log4j.properties和log4j.xml,默认是先找log4j.xml,找不到log4j.xml再去找log4j.properties的。当然前提是没有自己定义log4j.configuration。  

一.log4j中有五级logger :
   FATAL 0 ,ERROR 3 ,WARN 4 ,INFO 6 ,DEBUG 7

二. 配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中:
level:是日志记录的优先级。
appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。


1.配置日志信息输出目的地Appender,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN


Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(输出到控制台),
org.apache.log4j.FileAppender(输出到文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
2.配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
....
log4j.appender.appenderName.layout.option = valueN
Log4j提供的layout有以下4种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),其灵活性表现在:
    #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

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

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

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

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

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

    #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
    举例:Testlog4.main(TestLog4.java:10)

    #%d {yyyy-MM-dd HH:mm:ss,SSS};

    #%m 消息体

    #%F 类名(*.java)

    #%L 仅仅是发生的行号(如:18)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

自己参考其他网友的资料写的配置文件

log4j.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration debug="false">
 <appender name="FILE" class="org.apache.log4j.FileAppender">
  <param name="File" value="${webapp.root}/WEB-INF/log/system.log"/>
  <param name="Append" value="false"/>
  <param name="Threshold" value="info"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d [%-5p] [%c{1}] - %m%n"/>
  </layout>
 </appender>
 <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
  <param name="Target" value="System.out"/>
  <param name="Threshold" value="info"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d{ABSOLUTE} [%-5p] [%c{1}] %m%n"/>
  </layout>
 </appender>
 <appender name="DAILYFILE" class="org.apache.log4j.DailyRollingFileAppender">
  <param name="File" value="${webapp.root}/WEB-INF/log/daily_system.log"/>
  <param name="Append" value="true"/>
  <param name="Threshold" value="info"/>
  <param name="DatePattern" value="'.'yyyy-MM-dd"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c{1}] %m%n"/>
  </layout>
 </appender>
 <appender name="DEBUG_FILE" class="org.apache.log4j.FileAppender">
  <param name="File" value="${webapp.root}/WEB-INF/log/debug.log"/>
  <param name="Append" value="false"/>
  <param name="Threshold" value="info" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d [%-5p] [%c{1}] - %m%n"/>
  </layout>
 </appender>
 <appender name="WARN_FILE" class="org.apache.log4j.FileAppender">
  <param name="File" value="${webapp.root}/WEB-INF/log/warning.log"/>
  <param name="Append" value="false"/>
  <param name="Threshold" value="warn" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d [%-5p] [%c{1}] - %m%n"/>
  </layout>
 </appender>
 <appender name="DEBUG_HTML" class="org.apache.log4j.FileAppender">
  <param name="File" value="${webapp.root}/WEB-INF/log/debug.html"/>
  <param name="Append" value="false"/>
  <param name="Threshold" value="info"/>
  <layout class="org.apache.log4j.HTMLLayout">
   <param name="Title" value="debug html log"/>
  </layout>
 </appender>
 <logger name="com.fullproject">
  <level value="debug"/>
  <appender-ref ref="DEBUG_FILE"/>
 </logger>
 <logger name="org.springframework">
  <level value="warn"/>
  <appender-ref ref="WARN_FILE"/>
 </logger>
 <logger name="org.hibernate">
  <level value="warn"/>
  <appender-ref ref="WARN_FILE"/>
 </logger>
 <root>
  <level value="info"/>
  <appender-ref ref="CONSOLE"/>
  <appender-ref ref="FILE"/>
  <appender-ref ref="DEBUG_HTML"/>
  <appender-ref ref="DAILYFILE"/>
 </root>
</log4j:configuration>

解释:

xml格式的log4j配置文件需要使用org.apache.log4j.html.DOMConfigurator.configure()方法来
读入.对xml文件的语法定义可以在log4j的发布包中找到:org/apache/log4j/xml/log4j.dtd. 
Xml的一个配置文件:sample1.xml 
说明: 
①xml配置文件的头部包括两个部分:xml声明和dtd声明.头部的格式如下: 
②log4j:configuration (root element) 
xmlns:log4j [#FIXED attribute]: 定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/


<param name="Append" value="false" />false表示重启程序之后,不会把日志添加到文件末尾,取而代之是清空原来日志,写入新的日志.true则是会把新日志添加到文件末尾

<param name="Threshold" value="info" />表示这个appender只显示value以上级别的日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值