Log4j не работает после запуска Tomcat - PullRequest
0 голосов
/ 13 апреля 2011

У меня есть приложение, развернутое на сервере Tomcat и использующее систему регистрации log4j. Приложение размещено на centOS.

Мой вопрос: в моем ServletContextListener log4j регистрирует сообщения, которые я указал на консоли нормально, но когда tomcat наконец завершил запуск, log4j больше не работает.

Странно то, что это приложение развернуто в среде UAT, и log4j работает нормально. Единственное различие между tomcat в UAT и tomcat в рабочей среде состоит в том, что в моем каталоге tomcat есть несколько символических каталогов, в которых расположены веб-приложения, bin и т. Д.

Есть идеи, почему эта проблема?

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n" />
    </layout>
</appender>

<logger name="com.el.app">
    <level value="warn" />
    <appender-ref ref="console" />
</logger>

1 Ответ

0 голосов
/ 14 апреля 2011

Мне интересно, если что-то еще пытается настроить log4j или есть два экземпляра, и вы используете один во время запуска, а затем - для другого экземпляра.Всплывающее окно ClassLoader.

Вы можете попробовать запустить tomcat с помощью java -verbose: class.Это должно обеспечить множество журналов о загруженных классах.Проверьте, загружается ли какой-либо материал журналирования более одного раза, или загружаются другие библиотеки журналов.

Еще один тест - удалить все настройки log4j.Log4j теперь должен жаловаться на неправильную настройку.Если это не так, я бы сказал, что что-то еще настраивает его способами, которые не ожидаются.

Вы можете проверить, предлагает ли Log4J какие-либо хуки для информирования вас об изменениях в конфигурации.может отладить вызов log4j, чтобы увидеть, где ваше сообщение будет проглочено.

...