项目中加入Log4j日志模块我们比较常用的方式是通过加入log4j.properties配置文件,另一种不是很常用的配置文件类型是xml格式的文件。log4j.xml的位置和log4j.properties位置一样,直接放到工程的src目录下即可。我个人感觉xml文件的格式清晰,可读性强。下面的log4j.xml是一些具体的例子。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <!--输出到控制台--> <appender name="LOG.CONSOLE" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" /> </layout> </appender> <!--将级别为DEBUG的信息输出到文件--> <appender name="LOG.DEBUG" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="debug.log" /> <param name="MaxFileSize" value="5120KB" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="DEBUG" /> </filter> </appender> <!--将级别为INFO的信息输出到HTML文件--> <appender name="LOG.INFO" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="info.html" /> <param name="MaxFileSize" value="5120KB" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.HTMLLayout"> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="INFO" /> </filter> </appender> <!--将级别为WARN的信息输出到文件--> <appender name="LOG.WARN" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="warn.log" /> <param name="MaxFileSize" value="5120KB" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="WARN" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <!--将级别为ERROR的信息输出到文件--> <appender name="LOG.ERROR" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="error.log" /> <param name="MaxFileSize" value="5120KB" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="ERROR" /> </filter> </appender> <!--将级别为FATAL的信息输出到文件--> <appender name="LOG.FATAL" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="fatal.log" /> <param name="MaxFileSize" value="5120KB" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="FATAL" /> <param name="LevelMax" value="FATAL" /> </filter> </appender> <root> <!-- 输出级别 --> <!--#log4j中有 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL --> <priority value="OFF" /> <appender-ref ref="LOG.CONSOLE" /> <appender-ref ref="LOG.DEBUG" /> <appender-ref ref="LOG.INFO" /> <appender-ref ref="LOG.WARN" /> <appender-ref ref="LOG.ERROR" /> <appender-ref ref="LOG.FATAL" /> </root> </log4j:configuration>
log4j.properties文件如下
#可以设置级别:debug>info>warn>error #log4j.rootLogger=info,appender1 log4j.rootLogger=debug,appender1,appender2 #输出到控制台 log4j.appender.appender1=org.apache.log4j.ConsoleAppender #设置输出样式 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout #自定义样式 # %r 时间 # %t 方法名 main # %p 优先级 DEBUG/INFO/ERROR # %c 所属类的全名 # %l 发生的位置,在某个类的某行 # %m 输出代码中指定的讯息 # %n 输出一个换行符号 log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n #输出到文件 log4j.appender.appender2=org.apache.log4j.FileAppender #设置文件输出路径 log4j.appender.appender2.File=c:/Log4JDemo06.log #设置文件输出样式 log4j.appender.appender2.layout=org.apache.log4j.PatternLayout log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n