log4j通过xml形式的文件配置
log4j的官方wiki
http://wiki.apache.org/logging-log4j/Log4jXmlFormat
<?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" value="System.out"/> <layout value="%-5p %c{1} - %m%n"/> </layout> </appender> <root> <priority value ="debug" /> <appender-ref ref="console" /> </root> </log4j:configuration>
<root> <priority value="debug" /><!-- 日志中输出级别,这里输出debug级别以上的日志 debug、info、warn、error、fatal --> <appender-ref ref="CONSOLE" /><!-- 在控制台输出 --> <appender-ref ref="FILE" /><!-- 在文件输出 --> </root>
<appender name="CONSOLE" value="%d - %c -%-4r [%t] %-5p %x - %m%n" /><!-- 输出格式 --> </layout> <!--限制输出级别--> <filter value="ERROR"/> <param name="LevelMin" value="ERROR"/> </filter></appender>
<appender name="FILE" value="C:/log4j1.log"/><!-- 输出到的位置 --> <layout value="%d - %c -%-4r [%t] %-5p %x - %m%n" /> </layout> </appender>
<!-- ========================== 输出方式说明================================ --> <!-- Log4j提供的appender有以下几种: --> <!-- org.apache.log4j.ConsoleAppender(控制台), --> <!-- org.apache.log4j.FileAppender(文件), --> <!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), --> <!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), --> <!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) --> <!-- ========================================================================== --> <!-- 输出到日志文件 --> <appender name="filelog_appender" value="log/testlog4jxml_all.log" /> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --> <param name="Append" value="true" /> <!-- 设置文件大小 --> <param name="MaxFileSize" value="1MB" /> <!-- 设置文件备份 --> <param name="MaxBackupIndex" value="10000" /> <!-- 设置输出文件项目和格式 --> <layout value="%d{yyyy-MM-dd HH:mm:ss} %-5p (%c:%L)- %m%n" /> </layout> </appender> <!-- 输出到日志文件 每天一个日志 --> <appender name="filelog_daily" value="log/daily.log" /> <param name="DatePattern" value="'daily.'yyyy-MM-dd'.log'" /> <layout value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] (%c:%L) - %m%n" /> </layout> </appender>
<appender name="EMAIL_QQ" value="INFO"/> <param name="BufferSize" value="128" /> <param name="SMTPHost" value="smtp.qq.com" /> <param name="SMTPUsername" value="cjjvictory" /> <param name="SMTPPassword" value="***" /> <param name="From" value="cjjvictory@qq.com" /> <param name="To" value="cjjvictory@gmail.com" /> <param name="Subject" value="测试邮件发送" /> <param name="LocationInfo" value="true" /> <param name="SMTPDebug" value="true" /> <layout value="[%d{ISO8601}] %-5p %c %m%n"/> </layout> </appender> <!--- 异步测试,当日志达到缓存区大小时候执行所包的appender --> <appender name="ASYNC_test" value="10"/> <appender-ref ref="EMAIL_QQ"/> </appender>
<appender name="DATABASE" value="jdbc:oracle:thin:@192.168.0.59:1521:oanet"/> <param name="driver" value="oracle.jdbc.driver.OracleDriver"/> <param name="user" value="hdczoa"/> <param name="password" value="system"/> <layout value="INSERT INTO hdczoa.LOG4J(stamp,thread, info_level,class,message) VALUES ('%d', '%t', '%p', '%c', %m)" /> </layout> </appender>
<logger name="com.abc" additivity="false"> <level value="WARN" /> <appender-ref ref="CONSOLE" /> </logger>