日期:2014-05-17  浏览次数:20782 次

Log4j配置问题,求大神解决啊
如下是我Log4j.properties配置文件

log4j.rootLogger=WARN,sunyard

log4j.logger.org.springframework=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.com.opensymphony.xwork2=WARN
log4j.logger.cn.com.sunyard = WARN

 log4j.appender.sunyard=org.apache.log4j.ConsoleAppender
 log4j.appender.sunyard.layout=org.apache.log4j.PatternLayout
 log4j.appender.sunyard.Target = System.out 
 log4j.appender.sunyard.layout.ConversionPattern=[QC] %10d %-4r %p [%t] %C.%M(%L) | %m%n


可是我的控制台却不打印我的Action中的异常信息。cn.com.sunyard这是我项目主目录,所有的service  action都在这么目录下面的



------解决方案--------------------
引用:
Quote: 引用:

protected final Logger log = Logger.getLogger(this.getClass().getName());这是得到Logger对象。

1,手动输出日志   log.error("取得参数类型时错误。");

2, 打出异常
catch (HibernateException e) {
      log.error(e);
    }

你可以配置输出到文件里。

程序发生异常,没有log4j也会输出到控制台



那我岂不是要把所有的代码都try  catch住才能打印出来么……
有些时候异常无法意料的,比如一些空指针什么的。之前没用log4j的时候还打印出来,现在用了感觉压根没异常输出栈了,好纠结啊

这个东西主要目的不是打印到控制台,而是保存到文件中。
------解决方案--------------------
log4j.rootLogger=ERROR, A2
#log4j.rootLogger=ERROR, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=c:/tomcat.log
log4j.appender.A2.MaxFileSize=10MB
log4j.appender.A2.MaxBackupIndex=5
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%c %d{dd.MM.yyyy HH:mm:ss} -- %p -- %m%n