Эти сообщения являются чем-то хитрым, достаточно, чтобы люди создали это, чтобы сделать его более понятным: https://issues.apache.org/bugzilla/show_bug.cgi?id=25747
Что хитро в них, так это то, что предупреждения пишутся, если Log4j не может найти его log4j.properties
(или log4j.xml
) файла, но также, если файл в порядке, но его содержимое не является полным с точки зрения конфигурации.
Отсюда взят следующий абзац: http://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_9/docs/TROUBLESHOOT.html
Выходные данные записи записываются в цель с помощью приложения.Если ни один из дополнений не присоединен ни к категории, ни к каким-либо из ее предков, при попытке входа в систему вы получите следующее сообщение:
log4j: No appenders could be found for category (some.category.name).
log4j: Please initialize the log4j system properly.
Log4j не имеет цели ведения журнала по умолчанию.Пользователь несет ответственность за то, чтобы все категории могли унаследовать приложение.Этого легко достичь, подключив appender к корневой категории.
Информацию о настройке корневого регистратора (log4j.rootLogger
) можно найти в документации log4j ,в основном добавление чего-то такого простого в начале файла:
log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Это должно очистить те ПРЕДУПРЕЖДАЮЩИЕ сообщения, которые вы получаете при запуске (убедитесь, что у вас еще нет приложенияс именем stdout
; также будьте осторожны с тем, какой уровень вы задаете корневому логгеру, debug
будет очень многословным, и каждая библиотека в вашем приложении начнет записывать данные в консоль).
Как и в log4j.properties
/ log4j.xml
, я предлагаю вам поместить этот файл в /WEB-INF/classes
, так как важно, чтобы он был открыт для различных настроек (активация / деактивация журналов, изменение уровней журналов и т. Д.).Вы также можете иметь его внутри JAR в classpath (как вы указали в своем комментарии), но он будет включен в архив (надеюсь, в нужном месте внутри архива) и не будет таким простым в обращении, как если быбыли в /WEB-INF/classes
.