2015-03-27 4 views
1

Я использую Log4j 2, и я безуспешно пытаюсь изменить уровень ведения журнала jBPM/Drools, имея в качестве ссылки. Класс drools, который ведет журнал, составляет ExtensibleXmlParser.Log4j 2 - Дезактивировать регистратор слюни

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Root level="debug"> 
      <AppenderRef ref="Console" /> 
     </Root> 
     <Logger name="org.drools.core.xml.ExtensibleXmlParser" level="off"> 
      <AppenderRef ref="Console" /> 
     </Logger> 
    </Loggers> 
</Configuration> 

Если я правильно, ExtensibleXmlParser использует SLF4J и Log4j совместим с sl4j.

Почему эта конфигурация Log4j не работает? Может ли кто-нибудь предоставить мне рабочую конфигурацию? Должен ли я настраивать jBPM/Drools logger?

+1

Проверьте свой путь к классу: logback- * не должен быть там, и мост от sfl4j до log4j 2 должен быть там. Или просто переключитесь с log4j 2 на Logback (что, вероятно, так или иначе). –

ответ

1

Когда log4j, кажется, игнорирует ваши настройки в файле log4j.properties/xml, это чаще всего означает, что вы не играете с правильным файлом. Вполне вероятно, что в вашем пути к классам есть другой файл конфигурации, который будет найден раньше и будет учтен.

Найдите весь путь к классу для шаблона log4j* и посмотрите, что выйдет (включите содержимое файлов .jar и файлов приложений/lib и/ext, если они есть).

Если я понял, ExtensibleXmlParser использует slf4j, а Log4j совместим с sl4j.

«Совместимый» не эквивалентен «настроен на использование». SLF4J подключается к соответствующей структуре ведения журнала через класс org.slf4j.impl.StaticLoggerBinder. Найдите путь к классу (лучше всего в вашей среде IDE), чтобы узнать, в какую библиотеку входит этот класс. Если такого класса нет, то SLF4J ничего не записывает.

+0

Знаете ли вы, как я мог искать свой путь в классе? Я использую Eclipse –

+0

Ctrl + Shift + T, чтобы найти классы, Ctrl + Shift + R, чтобы найти другие файлы («ресурсы»). Обратите внимание, что это всего лишь приближение конечной траектории пути выполнения. – MaDa

+0

Спасибо. Как предложил Джеффри Де Смет, я должен быть более осторожным. У меня была ссылка на библиотеку log4j2, но этого недостаточно. Как только я добавил ссылку на мост реализации log4j-slf4j, как четко указано [здесь] (https://logging.apache.org/log4j/2.0/log4j-slf4j-impl/index.html), все начало работать как обычно. –