【发布时间】:2014-06-05 17:16:45
【问题描述】:
我们的 weblogic 8.1 服务器中有大约 19 个应用程序。每个应用程序都是一个带有一些 ejb、mdb 等的 .Ear 应用程序。每个应用程序都有一个 log4j 属性,定义在文件系统某处的 .properties 文件中。
我们在所有应用程序的服务器日志中不断收到此错误(如下)。这个异常并没有在应用程序中被捕获,应用程序的流程并没有停止,但是当这个异常发生时我们错过了一个或两个日志语句。
log4j:ERROR Attempted to append to closed appender named
注意:我在互联网上查找过,我没有在系统的任何地方看到重复的 log4j.jar 文件。如果需要,我可以发布 .properties 文件。
编辑:包括几个 log4j 属性。这些属性文件对于所有其他应用程序也是相同的。
第一个日志文件。
# Define the root logger with appender file
log=.//SI_AppLogs
log4j.rootLogger=WARN, SomeApp
log4j.logger.SomeAppLoggers = INFO, SomeApp
# Define the file appender
log4j.appender.SomeApp=org.apache.log4j.DailyRollingFileAppender
log4j.appender.SomeApp.File=${log}/CPEPortBasedAuthorization.log
log4j.appender.SomeApp.DatePattern='.'yyyy-MM-dd
log4j.appender.SomeApp.Append=true
# Define the layout for file appender
log4j.appender.SomeApp.layout=org.apache.log4j.PatternLayout
log4j.appender.SomeApp.layout.conversionPattern=%d %-5r %-5p [%c] (%t:%x) %m%n
log4j.additivity.org.apache=false
log4j.additivity.SomeAppLoggers = false
第二个日志文件
# Define the root logger with appender file
log=.//SI_AppLogs
log4j.rootLogger=WARN, AnotherApp
log4j.logger.AnotherAppLoggers = INFO, AnotherApp
# Define the file appender
log4j.appender.AnotherApp=org.apache.log4j.DailyRollingFileAppender
log4j.appender.AnotherApp.File=${log}/CPEPortBasedAuthorization.log
log4j.appender.AnotherApp.DatePattern='.'yyyy-MM-dd
log4j.appender.AnotherApp.Append=true
# Define the layout for file appender
log4j.appender.AnotherApp.layout=org.apache.log4j.PatternLayout
log4j.appender.AnotherApp.layout.conversionPattern=%d %-5r %-5p [%c] (%t:%x) %m%n
log4j.additivity.org.apache=false
log4j.additivity.AnotherAppLoggers = false
更新:
我没有在类路径中看到重复的 log4j.jars。我已经运行了以下代码并进行了验证。
String classpath = System.getProperty("java.class.path");
我没有看到任何两个 log4j.properties 文件定义了相同的 Appender。通过搜索整个 weblogic 部署目录来验证它。
【问题讨论】:
-
你提到了重复的 jar 文件,但是你的各种属性文件使用了重复的 appender 信息呢? stackoverflow.com/questions/8243137/…
-
@better_use_mkstemp 我已经用几个日志文件更新了帖子。
-
@better_use_mkstemp 已更新最新测试
-
我遇到了同样的问题。我的解决方案是将 JSTL 1.0 升级到 1.2
标签: java logging log4j weblogic