log4j: ОШИБКА Попытка добавить к закрытому приложению с именем

1

У нас около 19 приложений на нашем сервере weblogic 8.1. Каждое приложение представляет собой приложение.Ear с несколькими ejbs, mdb и т.д. Каждое приложение имеет свойства log4j, определенные в файле.properties где-то в файловой системе.

Мы продолжаем получать эту ошибку (ниже) в журналах сервера для всех приложений. Это исключение не попадает в приложение, поток приложения не останавливается, но мы пропускаем оператор журнала или два, когда возникает это исключение.

log4j:ERROR Attempted to append to closed appender named

Примечание. Я искал в Интернете, я не видел дубликатов файлов log4j.jar в любой точке системы. Я могу опубликовать файлы.properties, если вам нужно.

EDIT: Включает пару свойств log4j. Эти файлы свойств одинаковы для всех других приложений.

1-й файл журнала.

 # 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.

  • 0
    Вы упомянули дубликаты jar-файлов, но как насчет ваших различных файлов свойств, использующих дублирующую информацию appender? stackoverflow.com/questions/8243137/...
  • 0
    @better_use_mkstemp Я обновил пост парой файлов журналов.
Показать ещё 2 комментария
Теги:
logging
log4j
weblogic

1 ответ

1
Лучший ответ

Это была трудная находка для меня, поскольку у меня есть несколько приложений на виртуальной машине. В соответствии со статьей jar файл log4j необходимо добавлять в каждое приложение отдельно. Большинство классов в log4j являются singleton, поэтому корневой регистратор создается как одноэлемент для всех приложений (приложения EAR). Я изменил мое приложение, чтобы иметь одну банку на приложение, до сих пор никаких проблем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню