使用 log4j 记录 stderr 和 stdout

发布于 2024-10-06 19:53:11 字数 1813 浏览 0 评论 0原文

收到收据后 log4j 将 stdout 重定向到 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,我必须将它们记录在异常页面中。

Following the receipt on
log4j redirect stdout to DailyRollingFileAppender

And it was working until some point, and then it stopped working for some unknown reason.

Any idea of what can be wrong? i verified and im running exactly the same code as tieSystemOutAndErrToLog.

My log4j.properties is:

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

in particular, im not able to log this event that is logged in 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

UPDATED ANSWER:
so i finally figured this out. for some obscure reason that i cannot even fathom, tomcat is not routing uncaught exceptions through log4j, and they are dumped to stdout, i had to log them in an exception page..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

巷子口的你 2024-10-13 19:53:11

您是否可能引用包含其自己的 log4j.property 的 JAR 文件?

Is it possible that you reference a JAR file that contains its own log4j.property?

绅士风度i 2024-10-13 19:53:11

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

You can add "-Dlog4j.debug" to see which log4j file you're using

美胚控场 2024-10-13 19:53:11

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

No permissions (of the Tomcat process owner) to write into target log file? :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文