转自:http://mwhgjava.iteye.com/blog/930583
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
- <!-- threshold: default value is all-->
- <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" threshold="trace">
- <!-- STD_OUT在控制台的System.out上,记录trace到warn级别的日志 -->
- <appender name="STD_OUT" class="org.apache.log4j.ConsoleAppender">
- <layout class="org.apache.log4j.PatternLayout">
- <!--
- <param name="ConversionPattern" value="%-5p [ (%F:%L)] %m%n"/>
- -->
- <!--
- <param name="ConversionPattern" value="%-5p [ %C.%M(%F:%L)] %m%n"/>
- -->
- <!-- layout的模式字符串 "%l"前注意保留一个空格,在控制台点击日志链接时,才能够直接定位到文件中-->
- <param name="ConversionPattern" value="%-5p [at %l] %m%n"/>
- </layout>
- <filter class = "org.apache.log4j.varia.LevelRangeFilter">
- <param name="levelMin" value="trace"/>
- <param name="levelMax" value="warn"/>
- </filter>
- </appender>
- <!-- STD_ERR在控制台的System.err上,记录不低于error级别的日志 -->
- <appender name="STD_ERR" class="org.apache.log4j.ConsoleAppender">
- <param name="target" value="System.err"></param>
- <param name="threshold" value="error"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%-5p [ %l] %m%n"/>
- </layout>
- </appender>
- <!-- ERROR_FILE在文件log/error.log上,记录不低于error级别的日志 -->
- <!-- 日志文件大小最大为1000KB,保留4份备份,在上次日志中文件后追加日志。-->
- <appender name="ERROR_FILE" class="org.apache.log4j.RollingFileAppender">
- <param name="threshold" value="error"/>
- <param name="File" value="log/error.log"/>
- <param name="Append" value="true"/>
- <param name="MaxFileSize" value="1000KB"/>
- <param name="MaxBackupIndex" value="4"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [ %l] %m%n"/>
- </layout>
- </appender>
- <!-- ERROR_LAST_FILE在文件log/lasterror.log上,记录不低于error级别的日志 -->
- <!-- 每次重启应用,添加日志时,删除上次日志内容。-->
- <appender name="ERROR_LAST_FILE" class="org.apache.log4j.FileAppender">
- <param name="threshold" value="error"/>
- <param name="File" value="log/lasterror.log"/>
- <param name="Append" value="false"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [ %l] %m%n"/>
- </layout>
- </appender>
- <!-- 为com.yourcompany.yourgroup.yourproject名称空间,设置日志等级和记录器-->
- <!-- 为com.yourcompany.yourgroup.yourproject名称空间, 设置 不继承其祖先的记录器 -->
- <logger name="com.yourcompany.yourgroup.yourproject" additivity="false">
- <!-- logger level:默认继承其祖先的日志级别。 -->
- <!-- logger additivity:只控制是否继承祖先的记录器,不控制日志级别。 -->
- <param name="level" value="trace"/>
- <appender-ref ref="STD_OUT"/>
- <appender-ref ref="STD_ERR"/>
- </logger>
- <!-- 为根名称空间设置日志等级和记录器 -->
- <root>
- <!-- root level: default value is debug-->
- <param name="level" value="warn"/>
- <appender-ref ref="STD_OUT"/>
- <appender-ref ref="STD_ERR"/>
- <appender-ref ref="ERROR_FILE"/>
- <appender-ref ref="ERROR_LAST_FILE"/>
- </root>
- </log4j:configuration>
//Log4j 变量
Logger log = Logger.getLogger(this.getClass());