2015-08-13 6 views
1

В проекте Maven я поместил файл log4j.properties в каталог src \ main \ resources, который, кажется, является обычным местом для его ввода. Однако он не появляется чтобы прочитать его или есть ошибка, которую я не вижу, поскольку мой регистратор не печатает сообщения уровня DEBUG (он действительно печатает сообщения уровня INFO) и не создает файл logs.log. Вот что log4j.properties файл я использую:log4j не читает файл log4j.properties

# Root logger option 
log4j.rootLogger=DEBUG, file, stdout 

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=D:/.../src/main/resources/META-INF/logs.log 
log4j.appender.file.MaxFileSize=10MB 
log4j.appender.file.MaxBackupIndex=10 
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 

# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

Я также попытался пройти путь к файлу log4j.properties в моей конфигурации запуска, но это не сработало: -Dlog4j.configuration=file:D:/.../src/main/resources/log4j.properties Эти проект запускается через другой связанный проект, поэтому я использовал весь путь к файлу, который может быть неправильным, так как ни один из примеров, которые я видел, не содержит полных путей.

Сервер, который мы используем для запуска приложения, - это Wildfly 8.1.0, у которого есть собственный log4j logger, так что, возможно, это как-то мешает?

Вот часть моего перехватчика, который должен создавать журналы:

final static Logger logger = Logger.getLogger(RestInterceptor.class); 
...  
if(e instanceof ApplicationException) { 
     logger.debug(e.getMessage(), e); 
     //TODO remove these when done testing 
     logger.debug("debug is working"); 
     logger.info("info is working"); 
     return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); 
    } 

Однако только «информация работает» печатается.

+0

Это, как я передать его в том, когда я запускаю мой клиент: -Dlog4j.configuration = файл: /// D: /dev/settings/log4j.agility.properties Вы упускаете «/// 'после' файла: 'в вашем примере. Может, и все? – Craig

+0

Кроме того, убедитесь, что корректный поставщик журналов загружен в ваше дерево зависимостей maven. Раньше я сталкивался с конфликтами, и мне приходилось включать для зависимостей, которые включали поставщика журналов. – Craig

+0

Я добавил «///», но, к сожалению, это не решило проблему. – Arqan

ответ

0

Хорошо, поэтому мне удалось решить проблему. Это было вызвано тем, что регистратор Wildfly мешал мне. Я добавил <use-deployment-logging-config value="false"/> line в standalone.xml Но этого было недостаточно. После копания еще несколько я нашел и добавил следующую строку <add-logging-api-dependencies value="false"/>, и она наконец начала работать. Хотя я не вполне доволен этим решением, я думаю, он все еще лучше, чем ничего, и, возможно, стоит поделиться.

Так короче, добавьте это в standalone.xml и он должен решить лесозаготовительных конфликты, если вы используете Wildfly 8:

<subsystem xmlns="urn:jboss:domain:logging:2.0"> <add-logging-api-dependencies value="false"/> <use-deployment-logging-config value="false"/> ... </subsystem>

0

Вы уверены, что src \ main \ resources находится на вашем пути сборки?

Щелкните правой кнопкой мыши на вашем проекте -> Java Build Path [Tab Source]

Убедитесь, что папка ресурс находится на buildpath. Также убедитесь, что Исключенный шаблон = '**'

+0

@Arquan, если ваша папка находится в пути построения, чем вы должны добавить информацию в свой вопрос. Мне не нравится, когда мой ответ отклоняется, когда я пытаюсь помочь. – pmartin8

+0

Я не верю, что могу проголосовать с 1 товарищем по репутации. В любом случае это был не я. – Arqan

+1

@ pmartin8 Причина, по которой вы ниспровергаетесь (не мной), заключается в том, что ваше сообщение не дает ответа, но требует уточнений с оригинального плаката. Это должен был быть комментарий. – gvlasov

-1

обновления весеннюю версию. меня устраивает.

+1

Это должен быть комментарий. –

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