浏览 2287 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-12
配置文件如下: log4j.rootLogger=DEBUG,logfile,stdout log4j.logger.SYSTEM = INFO,JDBC #不继承父appender的配置,如果取消注释,rootCategory指定的appender将不再输出 #log4j.additivity.SYSTEM=false #stdout configure log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold=DEBUG log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= %d %p [%c] - %m%n #logfile configure log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logfile.File=./wallimn.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern= %d{yyyy MM dd HH:mm:ss} %5p [%c] - <%m>%n #JDBC configure log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender #如log4j.logger.SYSTEM未指定级别,以下面指定级别为准 log4j.appender.JDBC.Threshold=INFO log4j.appender.JDBC.driver=oracle.jdbc.driver.OracleDriver log4j.appender.JDBC.URL=jdbc:oracle:thin:@127.0.0.1:1521:swdb log4j.appender.JDBC.user=scott log4j.appender.JDBC.password=tiger log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout log4j.appender.JDBC.sql=INSERT INTO XT_SYS_LOG(USERID,LOGTIME,LOGLEVEL,LOGACTION,MESSAGE)VALUES('%X{userId}',sysdate,'%p','%l','%m') log4j.appender.JDBC.filter.F1=org.apache.log4j.varia.LevelRangeFilter #只接收ERROR级别的日志,这是很有用的技术 #这功能在1.2.8版本时,不支持这样配置,好像仅支持XML方式配置,我试了好多次才发现这个问题,可多个Filter组合共同限制 log4j.appender.JDBC.filter.F1.levelMin=ERROR log4j.appender.JDBC.filter.F1.levelMax=ERROR log4j.appender.JDBC.filter.F1.acceptOnMatch=true 建测试表的SQL: create table xt_sys_log( userid number, logtime date, logaction varchar2(100), loglevel varchar2(100), message varchar2(255)); 测试类: package com.wallimn.test; import org.apache.log4j.Logger; import org.apache.log4j.MDC; import junit.framework.TestCase; public class Log4JTest extends TestCase { public void testLog1(){ Logger logger = Logger.getLogger("SYSTEM"); MDC.put("userId", "11"); logger.fatal("test_fatal"); logger.error("test_Error"); logger.warn("test_warn"); logger.info("test_Info"); logger.debug("test_debug"); MDC.remove("userId"); } } 控制台输出: 2012-05-12 22:08:01,156 FATAL [SYSTEM] - test_fatal 2012-05-12 22:08:01,156 ERROR [SYSTEM] - test_Error 2012-05-12 22:08:01,421 WARN [SYSTEM] - test_warn 2012-05-12 22:08:01,421 INFO [SYSTEM] - test_Info 数据库记录查询: SQL> select userid,loglevel,message from xt_sys_log; USERID LOGLEVEL MESSAGE ---------- -------------------- -------------------- 11 ERROR test_Error 注意:仅记录了一条日志。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |