【发布时间】:2012-09-10 20:27:52
【问题描述】:
我们正在分发一个应用程序,该应用程序作为一组 WAR 文件部署在不同客户站点的不同 WebLogic 服务器(9、10 和 11)中。这些应用程序使用 commons-logging 和 log4j。除了在我们的应用程序没有生成日志的特定站点之外,它在任何地方都可以完美运行。该站点在 11g 上,并且安装了许多其他 Oracle 软件(BPEL、OSB 等)
在我们的代码中,我们使用:
public class Foo {
private final static Log log = LogFactory.getLog(Foo.class);
public void bar () {
log.trace("bar called");
...
由于我们想让客户调整他们的日志配置,我们在服务器 CLASSPATH 中有一个配置文件夹:
CLASSPATH=/opt/app/domain_foo/foo_config/:....
在该文件夹中,有两个日志文件,commons-logging.properties:
org.apache.commons.logging.Log org.apache.commons.logging.impl.Log4JLogger
还有 log4j.properties:(这是一个具有相同问题的简化文件,实际文件包含 5 个不同参数的记录器)
log4j.rootLogger=INFO, fileApp
# File appender
log4j.appender.fileApp=org.apache.log4j.RollingFileAppender
log4j.appender.fileApp.file=fooapp.log
log4j.appender.fileApp.maxFileSize=10240KB
log4j.appender.fileApp.maxBackupIndex=5
log4j.appender.fileApp.append=true
log4j.appender.fileApp.layout=org.apache.log4j.PatternLayout
log4j.appender.fileApp.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p %-70.70C %m%n
log4j.logger.be.foo=DEBUG
文件 fooapp.log 已创建(因此它能够找到属性文件)但为空。 我试图检查 Weblogic 中的日志设置,但它们在工作和不工作的服务器上似乎是相同的。 我将 CLASSPATH 复制到我的服务器,它仍然可以正常工作。
我真的不知道该去哪里找了。有什么想法吗?
【问题讨论】:
-
您的 nohup.out 中是否有任何错误消息,例如:“ERROR Attempted to append to closed appender named”?
-
检查服务器日志...
-
服务器日志不包含任何特殊内容。如果我故意在 log4j.properties 中出错,我可以在服务器日志中看到该错误。
-
我已将部分代码更改为直接使用 log4j,我正在获取这些日志。所以这个问题肯定与公共日志记录有关。我尝试在服务器启动参数中设置 -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger 但它根本没有效果。
标签: log4j weblogic apache-commons-logging