使用log4j记录stderr和stdout

时间:2010-12-10 08:47:53

标签: java log4j logging

收到后 log4j redirect stdout to DailyRollingFileAppender

它一直工作到某个点,然后由于某种未知的原因它停止工作。

任何可能出错的想法?我验证并运行与tieSystemOutAndErrToLog完全相同的代码。

我的log4j.properties是:

log4j.rootLogger = INFO, rollingFile, CONSOLE

log4j.logger.org.hibernate=INFO
log4j.logger.com.mchange=INFO
log4j.logger.com.opensymphony=WARN
log4j.logger.com.opensymphony.xwork2.ognl=ERROR

log4j.logger.org.hibernate.SQL=DEBUG, rollingFile
log4j.additivity.org.hibernate.SQL=false

#log4j.logger.com.mchange.v2.c3p0.impl.NewPooledConnection=DEBUG
#log4j.logger.com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool=DEBUG
#log4j.logger.com.mchange.v2.c3p0.impl.DefaultConnectionTester=DEBUG
log4j.logger.com.mchange.v2.resourcepool.BasicResourcePool=INFO


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

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %p %t %c - %m%n

特别是,我无法记录catalina.out中记录的此事件:

Dec 10, 2010 1:40:29 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException

更新的答案: 所以我终于想通了。由于某些模糊不清的原因,我甚至无法理解,tomcat没有通过log4j路由未捕获的异常,并且它们被转储到stdout,我不得不将它们记录在异常页面中。

3 个答案:

答案 0 :(得分:1)

您是否可以引用包含其自己的log4j.property?

的JAR文件

答案 1 :(得分:0)

您可以添加“-Dlog4j.debug”以查看您正在使用的log4j文件

答案 2 :(得分:0)

没有(Tomcat进程所有者的)权限写入目标日志文件? :)