最近搭建一个新的WebService工程,感觉日志系统有些慢,尤其是大量的JDBC日志写入日志文件时,想起了以前关注过的log4j的异步日志方式,从Apache的log4j上了解了具体配置,于是开始改进日志配制文件,便有了此文。
log4j的日志写入对象有很多种,基本上满足了任何写入要求,如写入控制台(ConsoleAppender)、数据库(JDBCAppender)、文件(FileAppender)、文件回滚(RollingFileAppender)、按日文件回滚(DailyRollingFileAppender)、邮件、自定义、甚至于Socket或以流的方式(WriteAppender )发送到任何指定的位置。
而log4j的日志级别分为5种,既:FATAL、ERROR、WARN、INFO、DEBUG
log4j的输出格式:
- HTMLLayout (以HTML表格形式布局)
- PatternLayout (可以灵活地指定布局模式)
- SimpleLayout (包含日志信息的级别和信息字符串)
- TTCCLayout (包含日志产生的时间、线程、类别等等信息)
简要的介绍了下基本配制,下面列出我在使用的异步日志配制供参考
<?xml version="1.0" encoding="GB2312"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" /> </layout> </appender> <appender name="DRFOUT" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="logs/brws.log" /> <param name="Append" value="true" /> <param name="DatePattern" value="yyyy_MM_dd'.'" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %l %x - %m%n" /> </layout> </appender> <appender name="ASYNCOUT" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="512" /> <appender-ref ref="DRFOUT" /> </appender> <root> <level value="info" /> <appender-ref ref="STDOUT" /> <appender-ref ref="DRFOUT" /> </root> </log4j:configuration>