У меня есть приложение 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
Как видите, отладка включена для compass и 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>
Какой трюк, чтобы заставить эту работу? В чем мое недоразумение?
Кто-нибудь может указать мне правильное направление и объяснить, как я могу сделать этот беспорядок регистрации более пуленепробиваемым?