ps做网站图片,青岛企业网站推广,淄博网站优化推广,泰安网站建设工作室log4j.xml配置详解#xff08;原文地址#xff09; 首先当然是得到log4j的jar档#xff0c;推荐使用1.2.X版#xff0c;下载地址#xff1a;
http://logging.apache.org/log4j/1.2/download.html
xml格式的log4j配置文件概述
xml格式的log4j配置文件需要使用org.apache…log4j.xml配置详解原文地址 首先当然是得到log4j的jar档推荐使用1.2.X版下载地址
http://logging.apache.org/log4j/1.2/download.html
xml格式的log4j配置文件概述
xml格式的log4j配置文件需要使用org.apache.log4j.xml.DOMConfigurator.configure()方法来读入。对xml文件的语法定义可以在log4j的发布包中找到org/apache/log4j/xml/log4j.dtd。
log4j的xml配置文件的树状结构如下所示注意下图只显示了常用的部分。
Java代码 xml declaration and DTD |
log4j:configuration | -- appender (name, class) | | | -- param (name, value) | -- layout (class) | | | -- param (name, value) -- logger (name, additivity) | | | -- level (class, value) | | | | | -- param (name, value) | -- appender-ref (ref) -- root | -- param (name, class) -- level | | | -- param (name, value) -- appender-ref (ref) Xml代码 ?xml version1.0 encodingUTF-8?
!DOCTYPE log4j:configuration SYSTEM log4j.dtd
log4j:configuration xmlns:log4jhttp://jakarta.apache.org/log4j/ appender namemyConsole classorg.apache.log4j.ConsoleAppenderlayout classorg.apache.log4j.PatternLayoutparam nameConversionPattern value[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n //layout!--过滤器设置输出的级别-- filter classorg.apache.log4j.varia.LevelRangeFilterparam namelevelMin valuedebug /param namelevelMax valuewarn /param nameAcceptOnMatch valuetrue //filter/appenderappender namemyFile classorg.apache.log4j.RollingFileAppenderparam nameFile valueD:/output.log /!-- 设置日志输出文件名 --!-- 设置是否在重新启动服务时在原有日志的基础添加新日志 --param nameAppend valuetrue /param nameMaxBackupIndex value10 /layout classorg.apache.log4j.PatternLayoutparam nameConversionPattern value%p (%c:%L)- %m%n //layout/appenderappender nameactivexAppender classorg.apache.log4j.DailyRollingFileAppenderparam nameFile valueE:/activex.log /param nameDatePattern value.yyyy-MM-dd.log /layout classorg.apache.log4j.PatternLayoutparam nameConversionPattern value[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n //layout/appender!-- 指定logger的设置additivity指示是否遵循缺省的继承机制--logger namecom.runway.bssp.activeXdemo additivityfalsepriority value info/appender-ref refactivexAppender //logger!-- 根logger的设置--rootpriority value debug/appender-ref refmyConsole/appender-ref refmyFile//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 输出产生该日志事件的线程名 xml declaration and DTD
xml配置文件的头部包括两个部分xml声明和DTD声明。头部的格式如下
?xml version1.0 encodingUTF-8 ?
!DOCTYPE log4j:configuration SYSTEM log4j.dtd og4j:configuration (root element)
xmlns:log4j [#FIXED attribute] : 定义log4j的名字空间取定值http://jakarta.apache.org/log4j/
appender [* child] : 一个appender子元素定义一个日志输出目的地
logger [* child] : 一个logger子元素定义一个日志写出器
root [? child] : root子元素定义了root logger appender
appender元素定义一个日志输出目的地。
name [#REQUIRED attribute] : 定义appender的名字以便被后文引用
class [#REQUIRED attribute] : 定义appender对象所属的类的全名
param [* child] : 创建appender对象时传递给类构造方法的参数
layout [? child] : 该appender使用的layout对象 layout
layout元素定义与某一个appender相联系的日志格式化器。
class [#REQUIRED attribute] : 定义layout对象所属的类的全名
param [* child] : 创建layout对象时传递给类构造方法的参数 logger
logger元素定义一个日志输出器。
name [#REQUIRED attribute] : 定义logger的名字以便被后文引用
additivity [#ENUM attribute] : 取值为true默认或者false是否继承父logger的属性
level [? child] : 定义该logger的日志级别
appender-ref [* child] : 定义该logger的输出目的地 root
root元素定义根日志输出器root logger。
param [* child] : 创建root logger对象时传递给类构造方法的参数
level [? child] : 定义root logger的日志级别
appender-ref [* child] : 定义root logger的输出目的地 level
level元素定义logger对象的日志级别。
class [#IMPLIED attribute] : 定义level对象所属的类默认情况下是org.apache.log4j.Level类
value [#REQUIRED attribute] : 为level对象赋值。可能的取值从小到大依次为all、debug、info、warn、error、fatal和off。当值为off时表示没有任何日志信息被输出
param [* child] : 创建level对象时传递给类构造方法的参数 appender-ref
appender-ref元素引用一个appender元素的名字为logger对象增加一个appender。
ref [#REQUIRED attribute] : 一个appender元素的名字的引用
appender-ref元素没有子元素 param
param元素在创建对象时为类的构造方法提供参数。它可以成为appender、layout、filter、errorHandler、level、categoryFactory和root等元素的子元素。
name and value [#REQUIRED attributes] : 提供参数的一组名值对
param元素没有子元素 在xml文件中配置appender和layout
创建不同的Appender对象或者不同的Layout对象要调用不同的构造方法。可以使用param子元素来设定不同的参数值。
创建ConsoleAppender对象
ConsoleAppender的构造方法不接受其它的参数。 ... ... ... ...
appender nameconsole.log classorg.apache.log4j.ConsoleAppender layout ... ... ... /layout
/appender
... ... ... ... 创建FileAppender对象
可以为FileAppender类的构造方法传递两个参数File表示日志文件名Append表示如文件已存在是否把日志追加到文件尾部可能取值为true和false默认。 ... ... ... ...
appender namefile.log classorg.apache.log4j.FileAppender param nameFile value/tmp/log.txt / param nameAppend valuefalse / layout ... ... ... /layout
/appender
... ... ... ... 创建RollingFileAppender对象
除了File和Append以外还可以为RollingFileAppender类的构造方法传递两个参数MaxBackupIndex备份日志文件的个数默认是1个MaxFileSize表示日志文件允许的最大字节数默认是10M。 ... ... ... ...
appender namerollingFile.log classorg.apache.log4j.RollingFileAppender param nameFile value/tmp/rollingLog.txt / param nameAppend valuefalse / param nameMaxBackupIndex value2 / param nameMaxFileSize value1024 / layout ... ... ... /layout
/appender
... ... ... ... 创建PatternLayout对象
可以为PatternLayout类的构造方法传递参数ConversionPattern。 ... ... ... ...
layout classorg.apache.log4j.PatternLayout param nameConversion value%d [%t] %p - %m%n /
/layout
... ... ... ... 使用log4j.xml的配置来让Hibernate中的参数化sql中的参数值和返回值输出 !-- 为打出sql中的参数而添加20121113start --!-- 输出到控制台中 -- appender nameconsole classorg.apache.log4j.ConsoleAppender layout classorg.apache.log4j.PatternLayout param nameConversionPattern value%d{yyyy-MM-dd HH:mm:ss} %-5p: %m%n / !-- %-5p: [%t] [%c{3}.%M(%L)] | %m%n -- /layoutfilter classorg.apache.log4j.varia.LevelRangeFilterparam nameLevelMin valuetrace /param nameLevelMax valueDEBUG //filter /appender logger nameorg.hibernate.type.descriptor.sql.BasicBinder level valuetrace / /loggerlogger nameorg.hibernate.type.descriptor.sql.BasicExtractor level valuetrace / /loggerlogger nameorg.hibernate.sql level valuetrace / /logger logger nameorg.hibernate.type level valuetrace / /logger !-- 为打出sql中的参数而添加20121113end --记得还要在root处加入这个appender即appender-ref refconsole/