log4j: log4j: ОШИБКА Попытка добавить к закрытому аппендеру с именем [stdout] - PullRequest
8 голосов
/ 16 мая 2011

Что означает «Попытка добавления к закрытому аппендиру»?

Ниже приведена небольшая часть моего файла log4j.xml

<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
    <param name="Threshold" value="TRACE" />
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p: %m%n" />
    </layout>
</appender>

<logger name="java.sql" additivity="false">
    <level value="trace" />
    <appender-ref ref="stdout" />
</logger>

Я пытаюсь распечатать некоторые sql-запросы, но получаю вышеуказанную ошибку. Я что-то упустил?

Ответы [ 3 ]

18 голосов
/ 19 октября 2011

Я получил это сообщение, когда мой log4j.xml содержал из-за копирования и удаления два логгера (или категории) с одинаковым именем, связанными с одним и тем же приложением.

9 голосов
/ 02 апреля 2012

В моем случае у меня есть два log4j.properties, доступных для Log4J: один из них помещается в classpath, а другой загружается программно (используя PropertyConfigurator.configure(..)).

И в этих двух файлах я ConsoleAppender зарегистрировался с тем же именем stdout и дважды использовал одну и ту же категорию (по одному в каждом файле свойств). Удаление конфигурации или файла свойств решило мою проблему.

3 голосов
/ 06 января 2017

В моем случае я использовал 2 элемента logger для одного и того же имени пакета, которые попали в эту ошибку. удаление одного из них решило проблему.

<logger name="org.activiti.engine" additivity="false">
    <level value="error" />
    <appender-ref ref="LOGFILE" />
  </logger>
  <logger name="org.activiti.engine" additivity="false">
    <level value="debug" />
    <appender-ref ref="activitiBPMLog" />
  </logger>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...