У меня есть приложение Spring, которое настроило log4j (через xml) и работает на Tomcat6, которое работало нормально, пока мы не добавим кучу зависимостей через Maven. В какой-то момент все приложение просто начало протоколировать часть того, что должно было быть объявлено в файле log4.xml.
«небольшой разглагольствования» Почему ведение журнала должно быть таким сложным в мире Java? почему вдруг приложение, которое было нормально, начинает вести себя так странно и почему его так чертовски сложно отлаживать?
Я читал и пытался решить эту проблему в течение нескольких дней, но пока безуспешно, надеюсь, какой-нибудь эксперт здесь может дать мне некоторое представление об этом
Я добавил параметр отладки log4j, чтобы проверить, читает ли log4j файл конфигурации и его значения, и это то, что показывает его часть.
log4j: Level value for org.springframework.web is [debug].
log4j: org.springframework.web level set to DEBUG
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.compass] additivity to [true].
log4j: Level value for org.compass is [debug].
log4j: org.compass level set to DEBUG
Как видите, отладка включена для компаса и spring.web, но показывает только уровень «INFO» для обоих пакетов. В моем конфигурационном файле log4j нет ничего необычного, просто обычный ConsoleAppender.
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
В чем хитрость, чтобы заставить это работать? Что это мое недоразумение здесь? Может ли кто-нибудь указать мне правильное направление и объяснить, как я могу сделать этот беспорядок с журналированием более пуленепробиваемым?