我们的 weblogic 8.1 服务器中有大约 19 个应用程序。每个应用程序都是一个带有一些 ejb、mdb 等的 .Ear 应用程序,每个应用程序都有一个在文件系统某处的 .properties 文件中定义的 log4j 属性。
我们在所有应用程序的服务器日志中不断收到此错误(如下)。这个异常没有在应用程序中捕获,应用程序的流程没有停止,但是当这个异常发生时我们错过了一两个日志语句。
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 部署目录来验证它。
最佳答案
这对我来说是一个艰难的发现,因为我在 VM 中有多个应用程序。根据 article需要将 log4j jar 文件单独添加到每个应用程序中。 log4j 中的大多数类都是单例的,因此根记录器被创建为所有应用程序的单例。(EAR 应用程序)。我修改了我的应用程序,使每个应用程序有一个 jar,到目前为止没有问题。
关于java - log4j:错误尝试追加到名为的封闭附加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066299/