2015-07-07 2 views
1

Я пытаюсь настроить ведение журнала в моем приложении, где log4j.properties ставятся в/в папке ресурсов имеют следующее содержание:log4j не видит log4j.properties файла

#log level 
log4j.rootLogger=ERROR, file 
log4j 
# 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
# 
log4j.appender.file.File=D:\agent\temp\panel log.log 
# 
log4j.appender.file.MaxFileSize=1MB 
# 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n  

и на моем запуске приложения Я вижу следующее в консоли:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

Что это значит и как его исправить?

+0

Добавить папку ресурсов в CLASSPATH – duffymo

+0

она находится в пути к классам –

+0

Я уверен, что вы так думаете, но JVM говорит, что вы ошибаетесь. Проверьте его снова, пока не увидите, что вы пропустили. Поместите этот файл в каталог WEB-INF/classes вашего развертывания, и он будет работать. – duffymo

ответ

0

Попробуйте поместить log4j.properties в корень вашей исходной папки. Или, альтернативно, добавьте ресурсы в свой путь к классам.

Коренная проблема: log4j не видит ваш файл конфигурации, поэтому вам нужно сделать его доступным.

Выписка из log4j руководства:

По умолчанию Инициализация под Tomcat

Инициализация log4j по умолчанию является особенно полезным в веб-сервере средах. В Tomcat 3.x и 4.x вы должны поместить log4j.properties в каталог WEB-INF/classes ваших веб-приложений. Log4j найдет файл свойств и самостоятельно инициализирует . Это легко сделать, и это работает.

Вы также можете установить системное свойство log4j.configuration перед запуском Tomcat. Для Tomcat 3.x Среда TOMCAT_OPTS используется для установки параметров командной строки. Для Tomcat 4.0 установите для переменной среды CATALINA_OPTS вместо TOMCAT_OPTS.

+0

, помещая его в корень моей исходной папки, не имеет никакого эффекта. –

0

У меня была такая же проблема, я использовал 7. кота я решил эту проблему, добавив путь конф к /bin/setenv.sh (если вы на Linux, создать файл, если он не существует), как это:

export JAVA_OPTS="$JAVA_OPTS -Dconfig.location=file -Dlog4j.configuration=file:///opt/apache-tomcat-7.0.61/lib/log4j.properties" 

, если вы находитесь на окна редактирования или создания setenv.bat и написать что-то вроде этого (не уверен, что о формате пути):

set JAVA_OPTS=%JAVA_OPTS%-Dconfig.location=file -Dlog4j.configuration=file://c:/opt/apache-tomcat-7.0.61/lib/log4j.properties 

забыла сказать: это будет влиять все приложения на сервере

+0

Это неправильная и плохая идея. У вас не будет такой возможности, если вы разворачиваете свой код на сервер, который не является вашей локальной машиной. Лучше узнать, как это сделать правильно. – duffymo

+0

Это может быть не лучшее решение, но оно работает в моем случае. Да, я забыл упомянуть, что сервер посвящен моему единственному приложению, и я полностью контролирую его. Правильное решение, помещающее файл в отдельную папку приложения, не вступало в силу, но я должен сказать, что мне нужно было запустить tomcat с установленными mule libs, поэтому, возможно, причина, по которой я должен был сделать уродливый путь, - это. К сожалению, у меня не хватало времени, и я не мог посвятить какое-либо дальнейшее исследование этой проблеме. – Jkike

0

Я изменил log4j.properties на log4j.xml и поместил его в папку ресурсов, и теперь все правильно. возможно, моя версия log4j не supprot .properties format

Смежные вопросы