【问题标题】:log4j:ERROR Attempted to append to closed appender namedlog4j:错误尝试附加到名为的封闭附加程序
【发布时间】: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


【解决方案1】:

这对我来说是一个艰难的发现,因为我在 VM 中有多个应用程序。根据article log4j jar 文件需要单独添加到每个应用程序。 log4j 中的大多数类都是单例的,因此根记录器被创建为所有应用程序的单例。(EAR 应用程序)。我已将我的应用程序修改为每个应用程序有一个 jar,到目前为止没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多