log4j為很完善的日志系統,通過設置配置文件來控制日志系統.可以自定義日志的輸出級別,指定日志保存的方式(文件、數據庫、郵件等),下面示例對控制臺、文件的日志配置:
1) 把log4j.properties或是log4j.xml放在src根下(ClassPath路徑中),或者結合spring的配置在web.xml中
> log4j.properties內容舉例如下:
log4j.rootCategory=DEBUG, stdout, R
#Console config
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=<%d> <%-5p> <%c> - %m(%F:%M:%L)%n
#File config
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina_home}/logs/test.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=0
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=<%d> <%-5p> <%c> - %m(%F:%M:%L)%n
#Package config
log4j.logger.org.apple=DEBUG
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.springframework=ERROR
log4j.logger.org.apache.struts=ERROR
> 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="CONSOLE" class="org.apache.log4j.ConsoleAppender">
??????? <layout class="org.apache.log4j.PatternLayout">
??????????? <param name="ConversionPattern"
??????????????? value="%p - %C{1}.%M(%L) | %m%n"/>
??????? </layout>
??? </appender>
??? <logger name="org.apache">
??????? <level value="WARN"/>
??? </logger>
??? <logger name="net.sf.hibernate">
??????? <level value="WARN"/>
??? </logger>
??? <logger name="org.springframework">
??????? <level value="WARN"/>
??? </logger>
??? <logger name="org.apple">
??????? <level value="DEBUG"/>
??? </logger>
??? <root>
??????? <level value="WARN"/>
??????? <appender-ref ref="CONSOLE"/>
??? </root>
</log4j:configuration>
2) 在需要做日志處理的類中,如下處理:
private static Log log = LogFactory.getLog(ClassName.class);