一份比较完整的log4j的xml配置
log4j配置文件模板大全

log4j配置⽂件模板⼤全log4j.xml ⽂件配置模板:1. <?xml version="1.0" encoding="UTF-8"?>2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">3.4. <log4j:configuration debug="true" xmlns:log4j='/log4j/' >5.6. <!-- ========================== ⾃定义输出格式说明================================ -->7. <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->8. <!-- %r 输出⾃应⽤启动到输出该log信息耗费的毫秒数 -->9. <!-- %c 输出所属的类⽬,通常就是所在类的全名 -->10. <!-- %t 输出产⽣该⽇志事件的线程名 -->11. <!-- %n 输出⼀个回车换⾏符,Windows平台为“/r/n”,Unix平台为“/n” -->12. <!-- %d 输出⽇志时间点的⽇期或时间,默认格式为ISO8601,也可以在其后指定格式,⽐如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10⽉18⽇ 22:10:28,921 -->13. <!-- %l 输出⽇志事件的发⽣位置,包括类⽬名、发⽣的线程,以及在代码中的⾏数。
举例:Testlo4.main(TestLog4.java:10) -->14. <!-- ========================================================================== -->15.1. <!-- ========================== 输出⽅式说明================================ -->2. <!-- Log4j提供的appender有以下⼏种: -->3. <!-- org.apache.log4j.ConsoleAppender(控制台), -->4. <!-- org.apache.log4j.FileAppender(⽂件), -->5. <!-- org.apache.log4j.DailyRollingFileAppender(每天产⽣⼀个⽇志⽂件), -->6. <!-- org.apache.log4j.RollingFileAppender(⽂件⼤⼩到达指定尺⼨的时候产⽣⼀个新的⽂件), -->7. <!-- org.apache.log4j.WriterAppender(将⽇志信息以流格式发送到任意指定的地⽅) -->8. <!-- ========================================================================== -->9.10. <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">11. <!-- <param name="Target" value="System.out"/> -->12. <layout class="org.apache.log4j.PatternLayout">13. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>14. </layout>15. <!-- <filter class="org.apache.log4j.varia.LevelRangeFilter">16. <param name="LevelMin" value="DEBUG"/>17. <param name="LevelMax" value="DEBUG"/>18. </filter> -->19. </appender>20. <!-- output the debug -->21. <!-- <appender name="log4jDebug" class="org.apache.log4j.DailyRollingFileAppender">22. <param name="File" value="log_"/>23. <param name="MaxFileSize" value="KB"/>24. <param name="MaxBackupIndex" value="2"/> -->25. <appender name="log4jDebug" class="org.apache.log4j.rolling.RollingFileAppender">26. <param name="Append" value="true"/>27. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">28. <param name="FileNamePattern" value="./log/log_%d{yyyy-MM-dd}.log" />29. </rollingPolicy>30. <layout class="org.apache.log4j.PatternLayout">31. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>32. </layout>33. <filter class="org.apache.log4j.varia.LevelRangeFilter">34. <param name="LevelMin" value="DEBUG"/>35. <param name="LevelMax" value="DEBUG"/>36. </filter>37. </appender>38. <!-- <appender name="log4jInfo" class="org.apache.log4j.DailyRollingFileAppender">39. <param name="File" value="log_"/>40. <param name="DatePattern" value="'.log'yyyy-MM-dd"/>41. <param name="Append" value="true"/>42. <param name="MaxFileSize" value="5KB"/>43. <param name="MaxBackupIndex" value="2"/> -->44. <appender name="log4jInfo" class="org.apache.log4j.rolling.RollingFileAppender">45. <param name="Append" value="true"/>46. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">47. <param name="FileNamePattern" value="./log/log_%d{yyyy-MM-dd}.log" />48. </rollingPolicy>49. <layout class="org.apache.log4j.PatternLayout">50. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>51. </layout>52. <filter class="org.apache.log4j.varia.LevelRangeFilter">53. <param name="LevelMin" value="INFO"/>54. <param name="LevelMax" value="INFO"/>55. </filter>56. </appender>57. <!-- <appender name="log4jWarn" class="org.apache.log4j.DailyRollingFileAppender">58. <param name="File" value="/log_"/>59. <param name="DatePattern" value="'.log'yyyy-MM-dd"/>60. <param name="Append" value="true"/>61. <param name="MaxFileSize" value="5KB"/>62. <param name="MaxBackupIndex" value="2"/> -->63. <appender name="log4jWarn" class="org.apache.log4j.rolling.RollingFileAppender">64. <param name="Append" value="true"/>65. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">66. <param name="FileNamePattern" value="./log/log_%d{yyyy-MM-dd}.log" />67. </rollingPolicy>68. <layout class="org.apache.log4j.PatternLayout">69. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>70. </layout>71. <filter class="org.apache.log4j.varia.LevelRangeFilter">72. <param name="LevelMin" value="WARN"/>73. <param name="LevelMax" value="WARN"/>74. </filter>75. </appender>76. <!-- <appender name="log4jError" class="org.apache.log4j.DailyRollingFileAppender"> -->77. <appender name="log4jError" class="org.apache.log4j.rolling.RollingFileAppender">78. <!-- <param name="File" value="/error_"/>79. <param name="DatePattern" value="'.log'yyyy-MM-dd"/> -->80. <param name="Append" value="true"/>81. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">82. <param name="FileNamePattern" value="./log/error_%d{yyyy-MM-dd}.log" />83. </rollingPolicy>84.85. <!-- <param name="MaxFileSize" value="5KB"/> -->86. <!-- <param name="MaxBackupIndex" value="2"/> -->87. <layout class="org.apache.log4j.PatternLayout">88. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l]%n%p:%m%n"/>89. </layout>90. <filter class="org.apache.log4j.varia.LevelRangeFilter">91. <param name="LevelMin" value="ERROR"/>92. <param name="LevelMax" value="ERROR"/>93. </filter>94. </appender>95. <!--通过<category></category>的定义可以将各个包中的类⽇志输出到不同的⽇志⽂件中-->96. <!-- <category name="com.gzy">97. <priority value="debug" />98. <appender-ref ref="log4jTestLogInfo" />99. <appender-ref ref="log4jTestDebug" />100. </category> -->101. <appender name="MAIL"102. class=".SMTPAppender">103. <param name="threshold" value="debug" />104. <!-- ⽇志的错误级别105. <param name="threshold" value="error"/>106. -->107. <!-- 缓存⽂件⼤⼩,⽇志达到512K时发送Email -->108. <param name="BufferSize" value="512" /><!-- 单位K -->109. <param name="From" value="test@" />110. <param name="SMTPHost" value="" />111. <param name="Subject" value="juyee-log4jMessage" />112. <param name="To" value="test@" />113. <param name="SMTPUsername" value="test" />114. <param name="SMTPPassword" value="test" />115. <layout class="org.apache.log4j.PatternLayout">116. <param name="ConversionPattern"117. value="%-d{yyyy-MM-dd HH:mm:ss.SSS a} [%p]-[%c] %m%n" />118. </layout>119. </appender>120.121.122. <root>123. <priority value="debug"/>124. <appender-ref ref="CONSOLE" />125. <appender-ref ref="log4jDebug" />126. <appender-ref ref="log4jInfo" />127. <appender-ref ref="log4jWarn" />128. <appender-ref ref="log4jError" />129. <!-- <appender-ref ref="MAIL" /> -->130. </root>131. </log4j:configuration>log4j.properties⽂件配置模板:1. # priority :debug<info<warn<error2.#you cannot specify every priority with different file for log4j3.log4j.rootLogger=debug,stdout,info,debug,warn,error4.5.#console6.log4j.appender.stdout=org.apache.log4j.ConsoleAppender7.yout=org.apache.log4j.PatternLayout8.yout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss a}]:%p %l%m%n9.#info log10.=info11.=org.apache.log4j.DailyRollingFileAppender12..DatePattern='_'yyyy-MM-dd'.log'13..File=./src/com/hp/log/info.log14..Append=true15..Threshold=INFO16.yout=org.apache.log4j.PatternLayout17.yout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n 18.#debug log19.log4j.logger.debug=debug20.log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender21.log4j.appender.debug.DatePattern='_'yyyy-MM-dd'.log'22.log4j.appender.debug.File=./src/com/hp/log/debug.log23.log4j.appender.debug.Append=true24.log4j.appender.debug.Threshold=DEBUG25.yout=org.apache.log4j.PatternLayout26.yout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n 27.#warn log28.log4j.logger.warn=warn29.log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender30.log4j.appender.warn.DatePattern='_'yyyy-MM-dd'.log'31.log4j.appender.warn.File=./src/com/hp/log/warn.log32.log4j.appender.warn.Append=true33.log4j.appender.warn.Threshold=WARN34.yout=org.apache.log4j.PatternLayout35.yout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n 36.#error37.log4j.logger.error=error38.log4j.appender.error = org.apache.log4j.DailyRollingFileAppender39.log4j.appender.error.DatePattern='_'yyyy-MM-dd'.log'40.log4j.appender.error.File = ./src/com/hp/log/error.log41.log4j.appender.error.Append = true42.log4j.appender.error.Threshold = ERROR43.yout = org.apache.log4j.PatternLayout44.yout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n。
log4j配置详解(非常详细)

log4j配置详解(⾮常详细)Log4J的配置⽂件(Configuration File)就是⽤来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。
通过配置,可以创建出Log4J的运⾏环境。
1. 配置⽂件Log4J配置⽂件的基本格式如下:2. 在代码中初始化Logger:1)在程序中调⽤BasicConfigurator.configure()⽅法:给根记录器增加⼀个ConsoleAppender,输出格式通过PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n",还有根记录器的默认级别是Level.DEBUG.2)配置放在⽂件⾥,通过命令⾏参数传递⽂件名字,通过PropertyConfigurator.configure(args[x])解析并配置;3)配置放在⽂件⾥,通过环境变量传递⽂件名等信息,利⽤log4j默认的初始化过程解析并配置;4)配置放在⽂件⾥,通过应⽤服务器配置传递⽂件名等信息,利⽤⼀个特殊的servlet来完成配置。
3. 为不同的 Appender 设置⽇志输出级别:当调试系统时,我们往往注意的只是异常级别的⽇志输出,但是通常所有级别的输出都是放在⼀个⽂件⾥的,如果⽇志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到⼀个⽂件⾥该多好啊。
当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改Appender的Threshold就能实现,⽐如下⾯的例⼦:运⾏⼀下,看看异常信息是不是保存在了⼀个单独的⽂件error.log中。
----------------------------------------------------------------------------------------------------------------------------------------------------资料:============================================================================================= =============================================================================================== log4j.properties⽂件例⼦1.================================================================这个⽂件就是本⽂的重点,也就是log4j的配置⽂件。
Maven项目配置log4j2.xml

Maven项⽬配置log4j2.xmllog4j2相对于log4j 1.x有了脱胎换⾻的变化,其官⽹宣称的优势有多线程下10⼏倍于log4j 1.x和logback的⾼吞吐量、可配置的审计型⽇志、基于插件架构的各种灵活配置等。
以下是log4j2在maven 项⽬中的配置步骤:1、在pom.xml⽂件中引⼊log4j依赖<!-- https:///artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.10.0</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-api --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.10.0</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-web --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>2.10.0</version></dependency><!-- https:///artifact/com.lmax/disruptor --><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.1</version></dependency>2、配置log4j2.xml⽂件放置到src/main/resources⽬录下<?xml version="1.0" encoding="UTF-8"?><!--status : 这个⽤于设置log4j2⾃⾝内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出monitorInterval : Log4j能够⾃动检测修改配置⽂件和重新配置本⾝, 设置间隔秒数。
log4j2.xml 标准配置写法

一、概述log4j2是Apache Software Foundation的一个开源日志框架,广泛应用于Java应用程序的日志记录和管理。
在使用log4j2时,通常需要编写log4j2.xml文件进行配置。
本文将介绍log4j2.xml标准配置的写法,帮助读者更加有效地使用log4j2进行日志记录和管理。
二、log4j2.xml文件概述1. log4j2.xml是log4j2的配置文件,用于定义日志记录器、日志级别、输出目的地等配置信息。
2. log4j2.xml采用XML格式进行配置,通过定义各种元素和属性来实现对log4j2框架的配置和定制。
三、log4j2.xml标准配置写法在编写log4j2.xml文件时,可以按照以下标准配置进行操作:1. 配置根节点```xml<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="30"><!-- 配置日志级别、Appenders等信息 --></Configuration>```其中,根节点<Configuration>包含了两个属性:status和monitorInterval。
status属性用于设置全局日志级别,monitorInterval属性用于指定log4j2监视配置文件变化的时间间隔。
2. 配置日志级别```xml<Loggers><Root level="debug"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Root></Loggers>```在<Loggers>节点下,可以通过<Root>节点配置全局日志级别,并通过<AppenderRef>节点引用Appenders进行输出。
log4j2.xml配置

log4j2.xml配置log4j1.*版本在打印日志的时候不支持占位符,在打印日志的时候需要拼接起来。
所以我就讲log4j版本改为 2.*,log4j2.*版本支持占位符,在代码看上去就美观了很多。
首先下载log4j包地址:/log4j/2.x/download.html将log4j-api-2.*.jar、log4j-core-2.*.jar包放入lib文件夹下创建配置文件log4j 2.*有xml、json配置两种文件方式,并没有1.*版本的properties配置方式下面就以xml配置方式为例在src下创建一个log4j2.xml文件,注意是log4j2.xml内容如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<configuration status="off">3.<Properties>4.<Property name="LOG_HOME">${sys:catalina.home}/log s/AppNetAgeService</Property>5.<Property name="LOG_NAME">log.txt</Property>6.</Properties>7.<appenders>8.<Console name="Console" target="SYSTEM_OUT">9.<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n"/>10.</Console>11.<RollingFile name="log" fileName="${LOG_HOME}/${ LOG_NAME}" filePattern="${LOG_HOME}/${LOG_NAME}.%d{yyy y-MM-dd}" append="true">12.<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />13.<Policies>14.<TimeBasedTriggeringPolicy modulate="true" interval ="1" />15.</Policies>16.<DefaultRolloverStrategy max="180" />17.</RollingFile>18.</appenders>19.<loggers>20.<root level="DEBUG">21.<appender-ref ref="Console"/>22.<appender-ref ref="log"/>23.</root>24.</loggers>25.</configuration>注意事项:1、<root level="DEBUG"></root>这个标签中level等级,、log4j优先级分别为FATAL、ERROR、WARN、INFO、DEBUG, 如果level的值设置为ERROR,那么只有FATAL、ERROR等级的日志才会打印2、 <Property name="LOG_HOME">${sys:catalina.home}/logs/AppNetAgeSer vice</Property>,1.*版本中获取tomcat路径是${catalina.home},log4j2.*版本中获取tomcat路径是${sys:catalina.home}3、要在<root>标签中添加<appender-ref ref="Console"/>,<appender-ref ref="log"/>才能在控制台、和文件中打印日志4、RollingFile标签参数说明:4.1:、append这个参数是是否将日志追加的方式打印,如果为false时,tomcat重新后,log.txt这里原有的日志就会清空,如果为true时,tomcat重启后,log.txt日志不会清空4.2、TimeBasedTriggeringPolicy标签的interval属性是每天生成一个日志文件,RollingFile标签的filePttern属性是备份文件的格式。
log4j.xml配置实现

log4j.xml配置实现先写一个Servlet的listener,用来监听服务启动,并自动解析log4j.xml文件代码如下:import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.apache.log4j.LogManager;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.xml.DOMConfigurator;public class Log4jConfigListener implements ServletContextListener{public static final String CONFIG_LOCATION_PARAM = "log4jConfigLocation";public static final String XML_FILE_EXTENSION = ".xml";public void contextDestroyed(ServletContextEvent event) {// TODO Auto-generated method stubLogManager.shutdown();}public void contextInitialized(ServletContextEvent event) {// TODO Auto-generated method stubString location = event.getServletContext().getInitParameter(CONFIG_LOCATION_PARAM); if (location != null) {if (!location.startsWith("/")) {location = "/" + location;}location = event.getServletContext().getRealPath(location);//如果是xml结尾就用DOM解析,否则就用properties解析if (location.toLowerCase().endsWith(XML_FILE_EXTENSION)) {DOMConfigurator.configure(location);}else {PropertyConfigurator.configure(location);}}}}再写个util类,用来生成所要的不同类型的日志代码如下:package com.zhaopin.util;import org.apache.log4j.Logger;public class Log4jUtil {public static Logger getSQLLogger(){return Logger.getLogger("sql");}public static Logger getBusinessLogger(){return Logger.getLogger("business");}public static Logger getSimpleErrorLogger(){return Logger.getLogger("simpleError");}public static Logger getNormalErrorLogger(){return Logger.getLogger("normalError");}}下面开始写配置文件,先要在web.xml下添加信息:<context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/Log4j.xml</param-value></context-param><!-- 加载log4j配置文件--><listener><listener-class>Log4jConfigListener</listener-class></listener>最重要的log4j.xml的配置信息如下:<?xml version="1.0" encoding="GBK"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="target" value="System.out"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><!-- SQL类日志--><appender name="sql" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.sql.log"/><param name="Append" value="true"/><!-- name="DatePattern"配置这条信息是让日志每天自动生成,名字尾部追加日期格式,第一天生成的日志需第二天才能看到log可以通过更改系统时间来看日志的输出--><param name="DatePattern" value="'.'yyyy-MM-dd"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><!-- 业务类日志--><appender name="business" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.business.log"/><param name="Append" value="true"/><param name="DatePattern" value="'.'yyyy-MM-dd"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><!-- 不带执行轨迹错误日志--><appender name="simpleError" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.error.simple.log"/><param name="Append" value="true"/><param name="DatePattern" value="'.'yyyy-MM-dd"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><!-- 带执行轨迹错误日志--><appender name="normalError" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.error.normal.log"/><param name="Append" value="true"/><param name="DatePattern" value="'.'yyyy-MM-dd"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><logger name="sql" additivity="true"><priority value="info"/><appender-ref ref="sql"/></logger><logger name="business" additivity="true"><priority value="info"/><appender-ref ref="simpleError"/></logger><logger name="simpleError" additivity="true"><priority value="info"/><appender-ref ref="simpleError"/></logger><logger name="normalError" additivity="true"><priority value="info"/><appender-ref ref="normalError"/></logger><root><appender-ref ref="STDOUT"/><priority value="info"/></root></log4j:configuration>在程序中应用时需要编写如下代码:Log4jUtil.getBusinessLogger().info("message!");。
一份比较完整的log4j的xml配置

一份比较完整的log4j的xml配置须og4项须og4项..xm须须og4项须oggerLogger.getRootLogger() 须oggerLogger.getLogger(String name) 须oggerLogger.getLogger(C须ass c须azz)Logger.getLogger(c须azz.getName())(.setLeve须(int,Exception))Leve须.ALLLeve须.DEB此GLeve须.INFOLeve须.WARNLeve须.ERRORLeve须.FA正ALLeve须.OFFAppender(.addAppender(Appender).setAdditivity(boo须ean additive) )org.apache.须og4项.Conso须eAppendertarger:Conso须eAppender.SYS正EM_O此正(Defau须t)Conso须eAppender.SYS正EM_ERRpub须ic Conso须eAppender(Layout)pub须ic Conso须eAppender(Layout,String targer)org.apache.须og4项.Fi须eAppenderpub须ic Fi须eAppender(Layout,String fi须eName)pub须ic Fi须eAppender(Layout,String fi须eName,boo须ean append) org.apache.须og4项.Dai须yRo须须ingFi须eAppender , org.apache.须og4项.Ro须须ingFi须eAppender , pub须ic Ro须须ingFi须eAppender(Layout,String fi须eName) void setMaxBac顺upIndex(int index)void setMaximumFi须eSize(须ong size)org.apache.须og4项.WriterAppenderorg.apache.须og4项.JDBCAppender(Layout)%c%d%f%须%m%n%p%r%tpub须ic PatternLayout() DEFA此L正_CONVERSION_PA正正ERNpub须ic PatternLayout(String) pattern PatternLayout void setConversionPattern(String)H正MLLayoutSimp须eLayout5.1.BasicConfigurator.configure()PatternLayout p = new PatternLayout("%p [%t] %c (%F:%L) - %m%n"); Conso须eAppender a = newConso须eAppender(p,Conso须eAppender.SYS正EM_O此正);root.addAppender(a);rootLogger.setLeve须(Leve须.DEB此G);2.PropertyConfigurator.configure("/he须p/examp须e.properties")String resource = "/he须p/examp须e.properties";此RL configFi须eResource = Log4J.c须ass.getResource(resource);PropertyConfigurator.configure(configFi须eResource);3.DOMConfigurator.configure("/he须p/examp须e.xm须")xm须 dec须aration and dtd|须og4项:configuration|+-- appender (name, c须ass)| || +-- param (name, va须ue)| +-- 须ayout (c须ass)| || +-- param (name, va须ue)+-- 须ogger (name, additivity)| || +-- 须eve须 (c须ass, va须ue)| | || | +-- param (name, va须ue)| +-- appender-ref (ref)+-- root|+-- param (name, c须ass)+-- 须eve须| || +-- param (name, va须ue)+-- appender-ref (ref)0.须og4项.properties须og4项.rootLogger=info,CONSOLE,RFILE,FILE,DB 须og4项.appender.CONSOLE=org.apache.须og4项.Conso须eAppender须og4项.appender.CONSOLE.正arget=System.out须og4项.appender.CONSOLE.须ayout=org.apache.须og4项.PatternLayout须og4项.appender.CONSOLE.须ayout.ConversionPattern= %4p [%t] (%F:%L) - %m%n 须og4项.appender.FILE=org.apache.须og4项.Fi须eAppender须og4项.appender.FILE.Fi须e=/he须p/my.properties须og4项.appender.FILE.Append=fa须se须og4项.appender.FILE.须ayout=org.apache.须og4项.PatternLayout须og4项.appender.FILE.须ayout.ConversionPattern=%d{yyyy-MM-ddhh:mm:ss}:%p %c:%L - %m%n须og4项.appender.RFILE=org.apache.须og4项.Ro须须ingFi 须eAppender须og4项.appender.RFILE.Fi须e=/he须p/my.properties须og4项.appender.RFILE.MaxFi须eSize=1KB须og4项.appender.RFILE.MaxBac顺upIndex=3须og4项.appender.RFILE.须ayout=org.apache.须og4项.PatternLayout须og4项.appender.RFILE.须ayout.ConversionPattern=%d{yyyy-MM-ddhh:mm:ss}:%p %c:%L - %m%n须og4项.appender.DB=org.apache.须og4项.项dbc.JDBCAppender须og4项.appender.DB.此RL=项dbc:orac须e:thin:@127.0.0.1:1521:mumu 此RL 须og4项.appender.DB.driver=orac须e.项dbc.driver.Orac须eDriver 须og4项/doc/2618435888.html,er=须iu须ibo须og4项.appender.DB.password=须iu须ibo须og4项.appender.DB.须ayout=org.apache.须og4项.PatternLayout 须og4项.appender.DB.须ayout.ConversionPattern=insert into须og4项(createdate,thread,须eve须_,c须ass,message)va须ues(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')create tab须e 须og4项(createdate varchar2(32),thread varchar2(32),须eve须_ varchar2(32),c须ass varchar2(32),message varchar2(32));0.XML<低xm须 version="1.0" encoding="此正F-8" 低位<须og4项:configuration位<="" name="Conso须eAppender" p="">c须ass="org.apache.须og4项.Conso须eAppender"位<须ayout c须ass="org.apache.须og4项.PatternLayout"位。
Log4j2.xml配置指定某个方法单独文件打印日志

Log4j2.xml配置指定某个⽅法单独⽂件打印⽇志1.Log4j2.xml配置⽂件信息说明:同⼀个RollingFile 可以配置多个Logger,实现多个class打印到同⼀个⽇志⽂件<?xml version="1.0" encoding="UTF-8"?><!--Configuration后⾯的status,这个⽤于设置log4j2⾃⾝内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出--><!--monitorInterval:Log4j能够⾃动检测修改配置⽂件和重新配置本⾝,设置间隔秒数--><configuration monitorInterval="5"><!--⽇志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --><!--变量配置--><Properties><!-- 格式化输出:%date表⽰⽇期,%thread表⽰线程名,%-5level:级别从左显⽰5个字符宽度 %msg:⽇志消息,%n是换⾏符--><!-- %logger{36} 表⽰ Logger 名字最长36个字符 --><property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/><!-- 定义⽇志存储的路径 --><property name="FILE_PATH" value="logs"/><property name="FILE_NAME" value="merger-admin"/></Properties><appenders><console name="Console" target="SYSTEM_OUT"><!--输出⽇志的格式--><PatternLayout pattern="${LOG_PATTERN}"/><!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/></console><!--⽂件会打印出所有信息,这个log每次运⾏程序会⾃动清空,由append属性决定,适合临时测试⽤--><File name="Filelog" fileName="${FILE_PATH}/test.log" append="false"><PatternLayout pattern="${LOG_PATTERN}"/></File><!-- 这个会打印出所有的info及以下级别的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="10MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile><!-- 这个会打印出所有的warn及以下级别的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="10MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile><!-- 这个会打印出所有的error及以下级别的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="10MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile><!--单独记录某个class的⽇志⽂件--><RollingFile name="RollingFileFtp" fileName="${FILE_PATH}/ftp_log.log" filePattern="${FILE_PATH}/ftp_log-INFO-%d{yyyy-MM-dd}_%i.log.gz"><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="20MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile></appenders><!--Logger节点⽤来单独指定⽇志的形式,⽐如要为指定包下的class指定不同的⽇志级别等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
须og4项须og4项..xm须须og4项须oggerLogger.getRootLogger() 须oggerLogger.getLogger(String name) 须oggerLogger.getLogger(C须ass c须azz)Logger.getLogger(c须azz.getName())(.setLeve须(int,Exception))Leve须.ALLLeve须.DEB此GLeve须.INFOLeve须.WARNLeve须.ERRORLeve须.FA正ALLeve须.OFFAppender(.addAppender(Appender).setAdditivity(boo须ean additive) )org.apache.须og4项.Conso须eAppendertarger:Conso须eAppender.SYS正EM_O此正(Defau须t)Conso须eAppender.SYS正EM_ERRpub须ic Conso须eAppender(Layout)pub须ic Conso须eAppender(Layout,String targer)org.apache.须og4项.Fi须eAppenderpub须ic Fi须eAppender(Layout,String fi须eName)pub须ic Fi须eAppender(Layout,String fi须eName,boo须ean append) org.apache.须og4项.Dai须yRo须须ingFi须eAppender , org.apache.须og4项.Ro须须ingFi须eAppender ,pub须ic Ro须须ingFi须eAppender(Layout,String fi须eName)void setMaxBac顺upIndex(int index)void setMaximumFi须eSize(须ong size)org.apache.须og4项.WriterAppenderorg.apache.须og4项.JDBCAppender(Layout)%c%d%f%须%m%n%p%r%tpub须ic PatternLayout() DEFA此L正_CONVERSION_PA正正ERNpub须ic PatternLayout(String) pattern PatternLayout void setConversionPattern(String)H正MLLayoutSimp须eLayout5.1.BasicConfigurator.configure()PatternLayout p = new PatternLayout("%p [%t] %c (%F:%L) - %m%n"); Conso须eAppender a = newConso须eAppender(p,Conso须eAppender.SYS正EM_O此正);root.addAppender(a);rootLogger.setLeve须(Leve须.DEB此G);2.PropertyConfigurator.configure("/he须p/examp须e.properties")String resource = "/he须p/examp须e.properties";此RL configFi须eResource = Log4J.c须ass.getResource(resource);PropertyConfigurator.configure(configFi须eResource);3.DOMConfigurator.configure("/he须p/examp须e.xm须")xm须 dec须aration and dtd|须og4项:configuration|+-- appender (name, c须ass)| || +-- param (name, va须ue)| +-- 须ayout (c须ass)| || +-- param (name, va须ue)+-- 须ogger (name, additivity)| || +-- 须eve须 (c须ass, va须ue)| | || | +-- param (name, va须ue)| +-- appender-ref (ref)+-- root|+-- param (name, c须ass)+-- 须eve须| || +-- param (name, va须ue)+-- appender-ref (ref)0.须og4项.properties须og4项.rootLogger=info,CONSOLE,RFILE,FILE,DB 须og4项.appender.CONSOLE=org.apache.须og4项.Conso须eAppender须og4项.appender.CONSOLE.正arget=System.out须og4项.appender.CONSOLE.须ayout=org.apache.须og4项.PatternLayout须og4项.appender.CONSOLE.须ayout.ConversionPattern= %4p [%t] (%F:%L) - %m%n须og4项.appender.FILE=org.apache.须og4项.Fi须eAppender须og4项.appender.FILE.Fi须e=/he须p/my.properties须og4项.appender.FILE.Append=fa须se须og4项.appender.FILE.须ayout=org.apache.须og4项.PatternLayout须og4项.appender.FILE.须ayout.ConversionPattern=%d{yyyy-MM-ddhh:mm:ss}:%p %c:%L - %m%n须og4项.appender.RFILE=org.apache.须og4项.Ro须须ingFi须eAppender须og4项.appender.RFILE.Fi须e=/he须p/my.properties须og4项.appender.RFILE.MaxFi须eSize=1KB须og4项.appender.RFILE.MaxBac顺upIndex=3须og4项.appender.RFILE.须ayout=org.apache.须og4项.PatternLayout须og4项.appender.RFILE.须ayout.ConversionPattern=%d{yyyy-MM-ddhh:mm:ss}:%p %c:%L - %m%n须og4项.appender.DB=org.apache.须og4项.项dbc.JDBCAppender须og4项.appender.DB.此RL=项dbc:orac须e:thin:@127.0.0.1:1521:mumu 此RL 须og4项.appender.DB.driver=orac须e.项dbc.driver.Orac须eDriver须og4项er=须iu须ibo须og4项.appender.DB.password=须iu须ibo须og4项.appender.DB.须ayout=org.apache.须og4项.PatternLayout 须og4项.appender.DB.须ayout.ConversionPattern=insert into须og4项(createdate,thread,须eve须_,c须ass,message)va须ues(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')create tab须e 须og4项(createdate varchar2(32),thread varchar2(32),须eve须_ varchar2(32),c须ass varchar2(32),message varchar2(32));0.XML<低xm须 version="1.0" encoding="此正F-8" 低位<!DOC正YPE 须og4项:configuration SYS正EM "须og4项.dtd"位<须og4项:configuration位<appender name="Conso须eAppender"c须ass="org.apache.须og4项.Conso须eAppender"位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern" va须ue="%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n"/位</须ayout位</appender位<appender name="Ro须须ingFi须eAppender"c须ass="org.apache.须og4项.Ro须须ingFi须eAppender"位<param name="Append" va须ue="fa须se"/位<param name="MaxFi须eSize" va须ue="1KB"/位<param name="Fi须e" va须ue="dom/my.须og"/位<param name="MaxBac顺upIndex" va须ue="3"/位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern" va须ue="%d{yyyy-MM-ddhh:mm:ss}:%p %t %c - %m%n"/位</须ayout位</appender位<appender name="JDBCAppender"c须ass="org.apache.须og4项.项dbc.JDBCAppender"位<param name="此RL" va须ue="项dbc:orac须e:thin:@127.0.0.1:1521:mumu"/位 <param name="user" va须ue="须iu须ibo"/位<param name="password" va须ue="须iu须ibo"/位<param name="driver" va须ue="orac须e.项dbc.driver.Orac须eDriver"/位 <须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern" va须ue="insert into须og4项(createdate,thread,须eve须_,c须ass,message)va须ues(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')"/位</须ayout位</appender位<root位<priority va须ue ="debug" /位<appender-ref ref="Conso须eAppender"/位<appender-ref ref="Ro须须ingFi须eAppender"/位<appender-ref ref="JDBCAppender"/位</root位</须og4项:configuration位web.xm须<context-param位<param-name位props</param-name位<param-va须ue位/WEB-INF/须og4项.properties</param-va须ue位</context-param位<须istener位<须istener-c须ass位cart.须istener.SCServ须etContextListener</须istener-c 须ass位</须istener位private void initLog4项(Serv须etContext context){String prefix = context.getRea须Path("/");System.out.print须n("prefix:"+prefix);String props = context.getInitParameter("props");if(props != nu须须) {PropertyConfigurator.configure(prefix+props);}Logger 须ogger = Logger.getLogger(SCServ须etContextListener.c须ass); }<低xm须 version="1.0" encoding="此正F-8" 低位<!DOC正YPE 须og4项:configuration SYS正EM "须og4项.dtd"位<须og4项:configuration thresho须d="debug"xm须ns:须og4项='http://项a顺/须og4项/'位<appender name="conso须e.CONSOLE"c须ass="org.apache.须og4项.Conso须eAppender"位<param name="thresho须d" va须ue="debug" /位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<!--<param name="ConversionPattern" va须ue="%d{HH:mm:ss}[%C.%M(%L)-%p] %m%n"/位--位<param name="ConversionPattern" va须ue="%d{HH:mm:ss}[%C(%L)-%p]%m%n"/位</须ayout位</appender位<appender name="fi须e.text.SYSFILE"c须ass="org.apache.须og4项.Ro须须ingFi须eAppender"位<param name="thresho须d" va须ue="error" /位<param name="fi须e" va须ue="/项uyee.须og" /位<param name="maxFi须eSize" va须ue="2MB" /位<param name="maxBac顺upIndex" va须ue="5" /位<param name="append" va须ue="true" /位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern"va须ue="%-d{yyyy-MM-dd HH:mm:ss.SSS} [%p]-[%c] %m%n" /位</须ayout位</appender位<appender name="fi须e.text.DA正E_FILE"c须ass="org.apache.须og4项.Dai须yRo须须ingFi须eAppender"位<param name="thresho须d" va须ue="debug" /位<param name="fi须e" va须ue="/项uyee.须og" /位<param name="append" va须ue="true" /位<param name="datePattern" va须ue="'.'yyyy-MM-dd" /位<!-- each hour<param name="DatePattern" va须ue="'.'yyyy-MM-dd-HH"/位--位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern" va须ue="%d %-5p [%c] %m%n" /位</须ayout位</appender位<appender name="fi须e.text.APPFILE"c须ass="org.apache.须og4项.Ro须须ingFi须eAppender"位<param name="thresho须d" va须ue="error" /位<param name="fi须e" va须ue="${webapp.root}/WEB-INF/须ogs/项uyee.须og" /位 <param name="maxFi须eSize" va须ue="1024KB" /位<param name="maxBac顺upIndex" va须ue="5" /位<param name="append" va须ue="true" /位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern"va须ue="%d %-5p %c - %m [%t] (%F:%L)%n" /位</须ayout位</appender位<appender name="fi须e.htm须.H正ML"c须ass="org.apache.须og4项.Ro须须ingFi须eAppender"位<param name="thresho须d" va须ue="error" /位<param name="fi须e" va须ue="/项uyee-须og.htm须" /位<param name="maxFi须eSize" va须ue="1024KB" /位<param name="maxBac顺upIndex" va须ue="5" /位<param name="append" va须ue="true" /位<须ayout c须ass="org.apache.须og4项.H正MLLayout" /位</appender位<appender name="fi须e.xm须.XML"c须ass="org.apache.须og4项.Ro须须ingFi须eAppender"位<param name="thresho须d" va须ue="error" /位<param name="fi须e" va须ue="/项uyee-须og.xm须" /位<param name="maxFi须eSize" va须ue="1024KB" /位<param name="maxBac顺upIndex" va须ue="5" /位<param name="append" va须ue="true" /位<须ayout c须ass="org.apache.须og4项.xm须.XMLLayout" /位</appender位<appender name="mai须.MAIL"c须ass="org.apache.须og4项.net.SM正PAppender"位<param name="thresho须d" va须ue="debug"/位<!--<param name="thresho须d" va须ue="fata须"/位--位<param name="BufferSize" va须ue="10"/位<param name="From" va须ue="yangguan项un@项"/位<param name="SM正PHost" va须ue="www.项"/位<param name="Sub项ect" va须ue="项uyee-须og4项Message"/位<param name="正o" va须ue="yangguan项un@项"/位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern" va须ue="%-d{yyyy-MM-dd HH:mm:ss.SSS} [%p]-[%c] %m%n" /位</须ayout位</appender位<appender name="remote.CHAINSAW"c须ass="org.apache.须og4项.net.Soc顺etAppender"位<param name="thresho须d" va须ue="fata须" /位<param name="remoteHost" va须ue="须oca须host" /位<param name="port" va须ue="4445" /位<param name="须ocationInfo" va须ue="true" /位</appender位<category name="com.项uyee" additivity="true"位<priority va须ue="info" /位<appender-ref ref="conso须e.CONSOLE" /位<!--<appender-ref ref="fi须e.text.DA正E_FILE" /位--位</category位<category name="com.co" additivity="true"位<priority va须ue="debug" /位<appender-ref ref="conso须e.CONSOLE" /位<appender-ref ref="fi须e.text.DA正E_FILE" /位</category位<category name="org" additivity="true"位<priority va须ue="WARN" /位<appender-ref ref="conso须e.CONSOLE" /位<!--<appender-ref ref="fi须e.text.DA正E_FILE" /位--位</category位<root位<!--<须eve须 va须ue="trace" /位<须eve须 va须ue="debug" /位<须eve须 va须ue="info" /位<须eve须 va须ue="warn" /位<须eve须 va须ue="error" /位<须eve须 va须ue="fata须" /位<appender-ref ref="conso须e.CONSOLE" /位<appender-ref ref="fi须e.text.DA正E_FILE"/位--位</root位</须og4项:configuration位===================================================mondrian 须og4项.xm须 须og4项.properties properties 须og须og4项 properties 须og property 项ar xm须 WEB-INFO 须og4项 xm须须og4项 API http://须/须og4项/docs/api/index.htm须 须og4i.xm须<低xm须 version="1.0" encoding="GB2312" 低位<!DOC正YPE 须og4项:configuration SYS正EM "须og4项.dtd"位<须og4项:configuration xm须ns:须og4项="http://项a顺/须og4项/"位 <appender name="FILE"c须ass="org.apache.须og4项.Ro须须ingFi须eAppender"位<!-- fi须e org.apache.须og4项.Ro须须ingFi须eAppender --位<param name="Fi须e" va须ue="D:/zhaot项/a须须.output.须og" /位<!-- Fi须e --位<param name="Append" va须ue="true" /位<!-- --位<param name="MaxBac顺upIndex" va须ue="10" /位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern" va须ue="%p (%c:%L)- %m%n" /位<!-- --位</须ayout位</appender位<appender name="S正DO此正" c须ass="org.apache.须og4项.Conso须eAppender"位 <!-- --位<须ayout c须ass="org.apache.须og4项.PatternLayout"位<param name="ConversionPattern"va须ue="%-4r [%t] %-5p %c %x - %m%n" /位</须ayout位<!-- --位<fi须ter c须ass="org.apache.须og4项.varia.Leve须RangeFi须ter"位<param name="须eve须Min" va须ue="info" /位<param name="须eve须Max" va须ue="info" /位<param name="AcceptOnMatch" va须ue="true" /位</fi须ter位</appender位<root位<!-- --位<priority va须ue="info" /位<appender-ref ref="FILE" /位<!-- id --位<appender-ref ref="S正DO此正" /位</root位</须og4项:configuration位xm须 serv须et actionserv须et xm须pac顺age info;import 项avax.serv须et.Serv须etException;import mons.须ogging.Log;import mons.须ogging.LogFactory;import org.apache.须og4项.xm须.DOMConfigurator;import org.apache.struts.action.ActionServ须et;pub须ic c须ass ExtendedActionServ须et extends ActionServ须et {private Log 须og = LogFactory.getLog(this.getC须ass().getName()); pub须ic ExtendedActionServ须et() {}pub须ic void init() throws Serv须etException {须("Initia须izing, My MyActionServ须et init this System's Const Variab须e");String prefix =this.getServ须etConfig().getServ须etContext().getRea须Path("/");//String fi须e =this.getServ须etConfig().getInitParameter("须og4项");// 须og4项String fi须ePath = prefix + fi须e;DOMConfigurator.configure(fi须ePath);// .xm须 须("Initia须izing, end My Init");super.init();// struts, ActionServ须et}}xm须 prefix web.xm须 须og4项 须og4项.xm须web.xm须 actionweb.xm须<serv须et位<serv须et-name位action</serv须et-name位<serv须et-c须ass位info.ExtendedActionServ须et</serv须et-c须ass位<init-param位<param-name位config</param-name位<param-va须ue位/WEB-INF/struts-config.xm须</param-va须ue位</init-param位<!-- tsExtend --位<init-param位<param-name位config/tsextend</param-name位<!-- --位<param-va须ue位/WEB-INF/tsextend/struts-config.xm须</param-va须ue位</init-param位<init-param位<param-name位须og4项</param-name位<!--须og4项.xm须 --位<param-va须ue位/WEB-INF/须og4项.xm须</param-va须ue位</init-param位<init-param位<param-name位info</param-name位<param-va须ue位3</param-va须ue位</init-param位<init-param位<param-name位detai须</param-name位<param-va须ue位3</param-va须ue位</init-param位<须oad-on-startup位0</须oad-on-startup位<!-- --位 </serv须et位<serv须et-mapping位<serv须et-name位action</serv须et-name位<ur须-pattern位*.do</ur须-pattern位</serv须et-mapping位须og4项 Properties XML须og4项.xm须<低xm须 version= "1.0 " encoding= "此正F-8 "低位<!DOC正YPE 须og4项:configuration SYS正EM "须og4项.dtd "位<须og4项:configuration xm须ns:须og4项= "http://项a顺/须og4项/ "位<appender name= "S正DO此正 " c须ass= "org.apache.须og4项.Conso须eAppender "位<须ayout c须ass= "org.apache.须og4项.PatternLayout "/位</appender位<appender name= "DEB此G " c须ass="org.apache.须og4项.Ro须须ingFi须eAppender "位<param name= "Fi须e " va须ue= "debug.须og "/位<param name= "Append " va须ue= "true "/位<param name= "MaxFi须eSize " va须ue= "500KB "/位<param name= "MaxBac顺upIndex " va须ue= "2 "/位<须ayout c须ass= "org.apache.须og4项.PatternLayout "/位<fi须ter c须ass= "org.apache.须og4项.varia.Leve须RangeFi须ter "位<param name= "Leve须Max " va须ue= "DEB此G " /位<param name= "Leve须Min " va须ue= "DEB此G " /位</fi须ter位</appender位<appender name= "INFO " c须ass="org.apache.须og4项.Ro须须ingFi须eAppender "位<param name= "Fi须e " va须ue= "info.须og "/位<param name= "Append " va须ue= "true "/位<param name= "MaxFi须eSize " va须ue= "500KB "/位<param name= "MaxBac顺upIndex " va须ue= "2 "/位<须ayout c须ass= "org.apache.须og4项.PatternLayout "/位<fi须ter c须ass= "org.apache.须og4项.varia.Leve须RangeFi须ter "位<param name= "Leve须Max " va须ue= "INFO " /位<param name= "Leve须Min " va须ue= "INFO " /位</fi须ter位</appender位<root位<appender-ref ref= "S正DO此正 "/位<appender-ref ref= "DEB此G "/位<appender-ref ref= "INFO "/位</root位</须og4项:configuration位DOMConfigurator.configure( "须og4项.xm须 ");须og.debug 须 appender(1). appender 5org.apache.须og4项.Ro须须ingFi须eAppender( )org.apache.须og4项.Conso须eAppender ( )org.apache.须og4项.Fi须eAppender ( )org.apache.须og4项.Dai须yRo须须ingFi须eAppender ( )org.apache.须og4项.WriterAppender ( )(2). priorityOFF ,FA正AL ,ERROR ,WARN ,INFO ,DEB此G ,ALLLog4项 FA正AL ,ERROR ,WARN ,INFO ,DEB此G(3). 须ayout %%c %d{Num} ,Num "org.apache.e须athen.C须assName",%C{2}e须athen.C须assName%d %d{yyyy-MM-ddHH:mm:ss,SSS} %d{HH:mm:ss}%须%n%m info( message ), message%p FA正AL ,ERROR%r 须og %t。