`
hit1983
  • 浏览: 37778 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

常用log4j配置

    博客分类:
  • java
阅读更多

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:
一、log4j.properties
### 设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ##
log4j.category.org.zblog=ERROR,A1
log4j.category.org.zblog=INFO,A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
### 设置输出地A1,为ConsoleAppender(控制台) ##
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
### 配置日志输出的格式##
log4j.appender.A2=org.apache.log4j.RollingFileAppender
### 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)##
log4j.appender.A2.File=E:/study/log4j/zhuwei.html
### 文件位置##
log4j.appender.A2.MaxFileSize=500KB
### 文件大小##
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.layout=org.apache.log4j.HTMLLayout
##指定采用html方式输出

二、log4j.xml

xml 代码
  1. <?xml version="1.0" encoding="GB2312" ?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  3.   
  4. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
  5.   
  6. <appender name="org.zblog.all" class="org.apache.log4j.RollingFileAppender">  
  7. <!-- 设置通道ID:org.zblog.all和输出方式:org.apache.log4j.RollingFileAppender -->  
  8.    <param name="File" value="E:/study/log4j/all.output.log" /><!-- 设置File参数:日志输出文件名 -->  
  9.    <param name="Append" value="false" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
  10.    <param name="MaxBackupIndex" value="10" />    
  11.    <layout class="org.apache.log4j.PatternLayout">  
  12.        <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 设置输出文件项目和格式 -->  
  13.    </layout>  
  14. </appender>  
  15.   
  16. <appender name="org.zblog.zcw" class="org.apache.log4j.RollingFileAppender">  
  17.    <param name="File" value="E:/study/log4j/zhuwei.output.log" />  
  18.    <param name="Append" value="true" />  
  19.    <param name="MaxFileSize" value="10240" /> <!-- 设置文件大小 -->  
  20.    <param name="MaxBackupIndex" value="10" />    
  21.    <layout class="org.apache.log4j.PatternLayout">  
  22.        <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />  
  23.    </layout>  
  24. </appender>  
  25.   
  26. <logger name="zcw.log"> <!-- 设置域名限制,即zcw.log域及以下的日志均输出到下面对应的通道中 -->  
  27.    <level value="debug" /><!-- 设置级别 -->  
  28.    <appender-ref ref="org.zblog.zcw" /><!-- 与前面的通道id相对应 -->  
  29. </logger>  
  30.   
  31. <root> <!-- 设置接收所有输出的通道 -->  
  32.    <appender-ref ref="org.zblog.all" /><!-- 与前面的通道id相对应 -->  
  33. </root>  
  34.   
  35. </log4j:configuration>  
  36.   


三、配置文件加载方法:

java 代码
  1. import org.apache.log4j.Logger;   
  2. import org.apache.log4j.PropertyConfigurator;   
  3. import org.apache.log4j.xml.DOMConfigurator;   
  4. public class Log4jApp {   
  5.    public static void main(String[] args) {   
  6.        DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加载.xml文件   
  7.        //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加载.properties文件   
  8.        Logger log=Logger.getLogger("org.zblog.test");   
  9.        log.info("测试");   
  10.    }   
  11. }   

四、项目使用log4j
在web 应用中,可以将配置文件的加载放在一个单独的servlet中,并在web.xml中配置该servlet在应用启动时候加载。对于在多人项目中,可以给每一个人设置一个输出通道,这样在每个人在构建Logger时,用自己的域名称,让调试信息输出到自己的log文件中。
五、常用输出格式
# -X号:X信息输出时左对齐;
# %p:日志信息级别
# %d{}:日志信息产生时间
# %c:日志信息所在地(类名)
# %m:产生的日志具体信息
# %n:输出日志信息换行

六、配置方法

log4j.properties配置文件讲解如下:
# Set root logger level to DEBUG and its only appender to A1
#log4j中有五级logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7

配置根Logger,其语法为:
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
#这一句设置以为着所有的log都输出
#如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL
#被输出,DEBUG,INFO将被屏蔽掉.
# A1 is set to be a ConsoleAppender.
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
#ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

 

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#日志文件的名称
log4j.appender.R.File=log4j.log
#日志文件的大小
log4j.appender.R.MaxFileSize=100KB
# 保存一个备份文件
log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n


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

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

 

配置日志信息输出目的地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(将日志信息以流格式发送到任意指定的地方)

 

配置日志信息的格式(布局),其语法为:

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

Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
七、web application 中使用log4j


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics