首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

log4j.xml 配备

2012-11-16 
log4j.xml 配置?xml?version1.0?encodingUTF-8?????!DOCTYPE?log4j:configuration?SYSTEM?log4j

log4j.xml 配置

  1. <?xml?version="1.0"?encoding="UTF-8"?>????
  2. <!DOCTYPE?log4j:configuration?SYSTEM?"log4j.dtd">????
  3. <log4j:configuration?xmlns:log4j='http://jakarta.apache.org/log4j/'?>????
  4. ??????
  5. ????<appender?name="myConsole"?class="org.apache.log4j.ConsoleAppender">????
  6. ????????<layout?class="org.apache.log4j.PatternLayout">????
  7. ????????????<param?name="ConversionPattern"??????
  8. ????????????????value="[%d{dd?HH:mm:ss,SSS\}?%-5p]?[%t]?%c{2\}?-?%m%n"?/>????
  9. ????????</layout>????
  10. ????????<!--过滤器设置输出的级别-->????
  11. ????????<filter?class="org.apache.log4j.varia.LevelRangeFilter">????
  12. ????????????<param?name="levelMin"?value="debug"?/>????
  13. ????????????<param?name="levelMax"?value="warn"?/>????
  14. ????????????<param?name="AcceptOnMatch"?value="true"?/>????
  15. ????????</filter>????
  16. ????</appender>????
  17. ????
  18. ????<appender?name="myFile"?class="org.apache.log4j.RollingFileAppender">??????
  19. ????????<param?name="File"?value="D:/output.log"?/><!--?设置日志输出文件名?-->????
  20. ????????<!--?设置是否在重新启动服务时,在原有日志的基础添加新日志?-->????
  21. ????????<param?name="Append"?value="true"?/>????
  22. ????????<param?name="MaxBackupIndex"?value="10"?/>????
  23. ????????<layout?class="org.apache.log4j.PatternLayout">????
  24. ????????????<param?name="ConversionPattern"?value="%p?(%c:%L)-?%m%n"?/>????
  25. ????????</layout>????
  26. ????</appender>????
  27. ??????
  28. ??
  29. ????<appender?name="activexAppender"?class="org.apache.log4j.DailyRollingFileAppender">????
  30. ????????<param?name="File"?value="E:/activex.log"?/>?????
  31. ????????<param?name="DatePattern"?value="'.'yyyy-MM-dd'.log'"?/>?????
  32. ????????<layout?class="org.apache.log4j.PatternLayout">????
  33. ?????????<param?name="ConversionPattern"?????
  34. ????????????value="[%d{MMdd?HH:mm:ss?SSS\}?%-5p]?[%t]?%c{3\}?-?%m%n"?/>????
  35. ????????</layout>?????
  36. ????</appender>????
  37. ??????
  38. ??
  39. ????<!--?指定logger的设置,additivity指示是否遵循缺省的继承机制-->????
  40. ????<logger?name="com.runway.bssp.activeXdemo"?additivity="false">????
  41. ????????<priority?value?="info"/>?????
  42. ????????<appender-ref?ref="activexAppender"?/>?????
  43. ????</logger>????
  44. ????
  45. ????<!--?根logger的设置-->????
  46. ????<root>????
  47. ????????<priority?value?="debug"/>????
  48. ????????<appender-ref?ref="myConsole"/>????
  49. ????????<appender-ref?ref="myFile"/>??????
  50. ????</root>????
  51. </log4j:configuration>???
配置参数说明:
(1). 输出方式appender一般有5种:
[plain]?view plaincopy
  1. org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)??
  2. org.apache.log4j.ConsoleAppender?(控制台)????
  3. org.apache.log4j.FileAppender?(文件)??
  4. org.apache.log4j.DailyRollingFileAppender?(每天产生一个日志文件)??
  5. org.apache.log4j.WriterAppender?(将日志信息以流格式发送到任意指定的地方)??
?
(2). 日记记录的优先级priority,优先级由高到低分为?
? ? ? ? ??[plain]?view plaincopy
  1. <span?style="white-space:pre">??</span>????OFF?,FATAL?,ERROR?,WARN?,INFO?,DEBUG?,ALL。??
  2. ?<span?style="white-space:pre">?</span>????Log4j建议只使用FATAL?,ERROR?,WARN?,INFO?,DEBUG这五个级别。??


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


xml配置文件详解:

?[plain]?view plaincopy
  1. <?xml?version="1.0"?encoding="UTF-8"??>??
  2. <!DOCTYPE?log4j:configuration?SYSTEM?"log4j.dtd">??
  3. ????????????
  4. log4j:configuration?(root?element)???
  5. ????xmlns:log4j?[#FIXED?attribute]?:?定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/"??
  6. ????appender?[*?child]?:?一个appender子元素定义一个日志输出目的地??
  7. ??????????
  8. ????????name?[#REQUIRED?attribute]?:?定义appender的名字,以便被后文引用??
  9. ????????class?[#REQUIRED?attribute]?:?定义appender对象所属的类的全名??
  10. ????????param?[*?child]?:?创建appender对象时传递给类构造方法的参数??
  11. ????????layout?[??child]?:?layout元素定义与某一个appender相联系的日志格式化器。??
  12. ??
  13. ??
  14. ????????????????class?[#REQUIRED?attribute]?:?定义layout对象所属的类的全名??
  15. ????????????????param?[*?child]?:?创建layout对象时传递给类构造方法的参数??
  16. ??
  17. ??
  18. ????logger?[*?child]?:?一个logger子元素定义一个日志写出器??
  19. ??
  20. ??
  21. ????????name?[#REQUIRED?attribute]?:?定义logger的名字,以便被后文引用??
  22. ????????additivity?[#ENUM?attribute]?:?取值为"true"(默认)或者"false",是否继承父logger的属性??
  23. ????????level?[??child]?:?定义该logger的日志级别??
  24. ????????appender-ref?[*?child]?:?定义该logger的输出目的地??
  25. ??
  26. ??
  27. ????root?[??child]?:?root子元素定义了root?logger???
  28. ????????param?[*?child]?:?创建root?logger对象时传递给类构造方法的参数??
  29. ????????level?[??child]?:?定义root?logger的日志级别??
  30. ????????????class?[#IMPLIED?attribute]?:?定义level对象所属的类,默认情况下是"org.apache.log4j.Level类??
  31. ????????????value?[#REQUIRED?attribute]?:?为level对象赋值。可能的取值从小到大依次为"all"、"debug"、"info"、"warn"、"error"、"fatal"和"off"。当值为"off"???????????????????????????????时表示没有任何日志信息被输出??
  32. ????????????param?[*?child]?:?创建level对象时传递给类构造方法的参数??
  33. ????????????appender-ref?[*?child]?:元素引用一个appender元素的名字,为logger对象增加一个appender。??
  34. ???



?
param元素没有子元素
在xml文件中配置appender和layout
创建不同的Appender对象或者不同的Layout对象要调用不同的构造方法。可以使用param子元素来设定不同的参数值。
创建ConsoleAppender对象
ConsoleAppender的构造方法不接受其它的参数。
?
[plain]?view plaincopy
  1. <appender?name="console.log"?style="margin: 0px !important; padding: 0px 3px 0px 10px !important; border-style: none none none solid; border-left-width: 3px; border-left-color: #6ce26c; color: inherit; line-height: 18px;">????...?...??
  2. ??</layout>??
  3. </appender>??


? ? ? ? ??
?
创建FileAppender对象
可以为FileAppender类的构造方法传递两个参数:File表示日志文件名;Append表示如文件已存在,是否把日志追加到文件尾部,可能取值为"true"和"false"(默认)。
?[plain]?view plaincopy
  1. <appender?name="file.log"?style="margin: 0px !important; padding: 0px 3px 0px 10px !important; border-style: none none none solid; border-left-width: 3px; border-left-color: #6ce26c; color: inherit; line-height: 18px;">??<param?name="Append"?value="false"?/>??
  2. ??<layout?...?>??
  3. ????...?...??
  4. ??</layout>??
  5. </appender>??


?
创建RollingFileAppender对象
除了File和Append以外,还可以为RollingFileAppender类的构造方法传递两个参数:MaxBackupIndex备份日志文件的个数(默认是1个);MaxFileSize表示日志文件允许的最大字节数(默认是10M)。
?
[plain]?view plaincopy
  1. <appender?name="rollingFile.log"?style="margin: 0px !important; padding: 0px 3px 0px 10px !important; border-style: none none none solid; border-left-width: 3px; border-left-color: #6ce26c; color: inherit; line-height: 18px;">??<param?name="Append"?value="false"?/>??
  2. ??<param?name="MaxBackupIndex"?value="2"?/>??
  3. ??<param?name="MaxFileSize"?value="1024"?/>??
  4. ??<layout?...?>??
  5. ????...?...??
  6. ??</layout>??
  7. </appender>??


? ? ? ? ??
?
创建PatternLayout对象
可以为PatternLayout类的构造方法传递参数ConversionPattern。
?[plain]?view plaincopy
  1. <layout?style="margin: 0px !important; padding: 0px 3px 0px 10px !important; border-style: none none none solid; border-left-width: 3px; border-left-color: #6ce26c; color: inherit; line-height: 18px;"></layout>??

热点排行