`
zhangxiang390
  • 浏览: 214111 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

log4j xml配置详解

阅读更多

 

熟读一个典型的log4j配置文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' >
  
	<appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
		 	<param name="ConversionPattern"  
		  		value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
		</layout>
		<!--过滤器设置输出的级别-->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="levelMin" value="debug" />
			<param name="levelMax" value="warn" />
			<param name="AcceptOnMatch" value="true" />
		</filter>
	</appender>

	<appender name="myFile" class="org.apache.log4j.RollingFileAppender">  
		<param name="File" value="D:/output.log" /><!-- 设置日志输出文件名 -->
		<!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
		<param name="Append" value="true" />
		<param name="MaxBackupIndex" value="10" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
		</layout>
	</appender>
 
	<appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="E:/activex.log" /> 
		<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> 
		<layout class="org.apache.log4j.PatternLayout">
		 <param name="ConversionPattern" 
			value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
		</layout> 
	</appender>
  
	<!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->
	<logger name="com.runway.bssp.activeXdemo" additivity="false">
		<priority value ="info"/> 
		<appender-ref ref="activexAppender" /> 
	</logger>

	<!-- 根logger的设置-->
	<root>
		<priority value ="debug"/>
		<appender-ref ref="myConsole"/>
		<appender-ref ref="myFile"/>	
	</root>
</log4j:configuration>

 

(1). 输出方式appender一般有5种:

             org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)
             org.apache.log4j.ConsoleAppender (控制台)  
             org.apache.log4j.FileAppender (文件)
             org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
             org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

 

(2). 日记记录的优先级priority,优先级由高到低分为
            OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
            Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。

 

(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):
                %c        输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)
                %d       输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
                %l        输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
                %n       换行符
                %m      输出代码指定信息,如info(“message”),输出message
                %p       输出优先级,即 FATAL ,ERROR 等
                %r        输出从启动到显示该log信息所耗费的毫秒数
                %t        输出产生该日志事件的线程名

 

分享到:
评论
5 楼 thebye85 2011-08-10  
thebye85 写道
houwen 写道
脑袋雷劈的 写道
如果这个appender中,不定义filter,那么根logger的设置是可以影响到这个appender的,也就是说这个appender的输出级别,将是debug的。对不?

恩,是这样。
如果 appender加上<param name="Threshold" value="warn" /> ,
下面的这个就不管用了。
<logger name="com.runway.bssp.activeXdemo" additivity="false"> 
         <priority value ="info"/>    
</logger> 
调试时,加类似上面这个logger节点,可以定义只打印具体类,及莫个包下的日志。



我在log4j.1.2.16.jar中没有找到<param name="threshold" value="warn" />配置,在<log4j:configuration threshold="debug">节点上找到threshold这个属性。只有在大于等于threshold级别是才能生效appender。


找到了,确实有<param name="threshold" value="warn" />
 
org.apache.log4j.AppenderSkeleton

 public void setThreshold(Priority threshold) {
    this.threshold = threshold;
  }  
4 楼 thebye85 2011-08-10  
houwen 写道
脑袋雷劈的 写道
如果这个appender中,不定义filter,那么根logger的设置是可以影响到这个appender的,也就是说这个appender的输出级别,将是debug的。对不?

恩,是这样。
如果 appender加上<param name="Threshold" value="warn" /> ,
下面的这个就不管用了。
<logger name="com.runway.bssp.activeXdemo" additivity="false"> 
         <priority value ="info"/>    
</logger> 
调试时,加类似上面这个logger节点,可以定义只打印具体类,及莫个包下的日志。



我在log4j.1.2.16.jar中没有找到<param name="threshold" value="warn" />配置,在<log4j:configuration threshold="debug">节点上找到threshold这个属性。只有在大于等于threshold级别是才能生效appender。
3 楼 houwen 2009-08-13  
脑袋雷劈的 写道
如果这个appender中,不定义filter,那么根logger的设置是可以影响到这个appender的,也就是说这个appender的输出级别,将是debug的。对不?

恩,是这样。
如果 appender加上<param name="Threshold" value="warn" /> ,
下面的这个就不管用了。
<logger name="com.runway.bssp.activeXdemo" additivity="false"> 
         <priority value ="info"/>    
</logger> 
调试时,加类似上面这个logger节点,可以定义只打印具体类,及莫个包下的日志。


2 楼 脑袋雷劈的 2009-05-12  
如果这个appender中,不定义filter,那么根logger的设置是可以影响到这个appender的,也就是说这个appender的输出级别,将是debug的。对不?
1 楼 脑袋雷劈的 2009-05-12  
<!-- 根logger的设置-->  
45.    <root>  
46.        <priority value ="debug"/>  
47.        <appender-ref ref="myConsole"/>  
48.        <appender-ref ref="myFile"/>     
49.    </root>

这里定义了myConsole,myFile这两个Appender的输出级别是DEBUG,那么logger的作用到底是什么呢?可以定义多个logger的作用到底是什么?

比如,我想在不同的appender中定义不同的输出级别,可以通过:
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
       value="%d{yyyy/MM/dd-HH:mm:ss} >> %5p >> %t >> %l >> %m%n"/>
</layout>
<!--控制台只输出INFO级别信息-->
<filter class="org.apache.log4j.varia.LevelRangeFilter">  
   <param name="levelMin" value="INFO" />  
   <param name="levelMax" value="INFO" />  
   <param name="AcceptOnMatch" value="true" />  
</filter>
</appender>

这种方式来实现,这种方式和定义多个logger又有什么区别呢??

相关推荐

    Log4j配置详解高清版

    Log4j配置详解 特别清晰,大家可以下载来参考学习,有问题可以反馈

    log4j常用配置详解

    log4j常用配置,properties 和.xml两种配置示例

    log4j2-所需jar包+配置详解(详细)

     log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn".  系统选择配置文件的优先级(从先到后)如下:  (1).classpath下的名为log4j2-test.json...

    常用log4j的配置详解

    log4j的配置详细介绍,xml和properties两种格式,同时有一个完整的文档

    log4j配置文件说明(完整版)

    log4j配置文件说明,让你轻松配置日志文件

    log4j入门到详解

    目录 ...................... 1. Log4j 简介 ........... 2. 下载与使用.............4.2 XML 配置文件详解 .... 4.3 properties 比较详细的例子 4.4 在代码中使用 Log4j .. 4.5 注意事项 . 5. Properties 文件实例说明

    log4j.properties配置详解

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

    Log4J配置详解

    详细讲解Log4j的配置问题,包括XML文件配置方法和利用配置文件配置方法。

    log4j配置详解.

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

    log4j2的配置案例,可直接使用

    配置日志记录器输出的状态为“fatal”,意味着只输出致命错误信息。 定义了一个名为“baseDir”的属性,其值为"./logs",用于配置日志文件的存储路径。 配置了三个日志输出器,分别是控制台输出器“Console”以及三...

    log4j,log4j2,logback 日志插件的使用例子

    2. log4j2 的配置详解,JDBC 配置,CloseableThreadContext 的使用(自定义输出日志文件 例如 logback MDC) 3.logback 的XML配置与使用,MDC的使用,SiftingAppender,DBAppender(c3p0,druid) 详细查看代码:README.md ...

    log4j.properties详解与例子

    在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行...Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明properties文件)

    log4j从入门到详解

    大部分内容摘自网络,整理:雪飘寒 目录 Log4j从入门到详解 目录 1. Log4j简介 ...4.2 XML配置文件详解 4.3 properties比较详细的例子 4.4 在代码中使用Log4j 4.5 注意事项 5. Properties文件实例说明

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    logback+self4j 进行日志记录

    关于logback-test.xml配置详解,包括简单项目demo解压运行

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    mybatis 一对多多对多案例详解

    2、建立maven 工程 导入相关依赖 ,mybatis,mysql,junit,log4j; 3、建立实体类User和Role; 4、编写UserDao,RoleDao以及映射文件UserDaoMapping.xml ,RoleDaoMapping.xml和主配置文件SqlMapConfig.xml,下面上代码...

Global site tag (gtag.js) - Google Analytics