2013-06-21 3 views
1

Я новичок в log4j и стараюсь использовать его в проекте. По какой-то причине информация не будет отображаться на консоли. Он работает только тогда, когда я меняю его на logger.error(). Это происходит только в классе userServiceImpl, другие классы, такие как контроллеры, в порядке. Это log4j.xml:log4j не отображается информация на консоли

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration debug="false" 
    xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <!-- This default ConsoleAppender is used to log all NON perf4j messages 
     to System.out --> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" /> 
     </layout> 
    </appender> 

    <!-- The root logger sends all log statements EXCEPT those sent to the perf4j 
     logger to System.out. --> 
    <root> 
     <level value="ERROR" /> 
     <appender-ref ref="console" /> 
    </root> 
    <logger name="com.click.heal.controller" additivity="false" > 
     <level value="INFO" /> 
     <appender-ref ref="console"/> 
    </logger> 
    <logger name="com.click.heal.service" additivity="true" > 
     <level value="INFO" /> 
     <appender-ref ref="console"/> 
    </logger> 
</log4j:configuration> 

ответ

0

Корневая категория находится на уровне ОШИБОК. Все, что не попадает под один из ваших двух регистраторов, попадет под root и будет регистрироваться только на уровне ERROR. Если вы измените свой корневой уровень на INFO, я уверен, что это журналы, верно? Не говорите, что это то, что вы хотите, но было бы ключом к тому, что ваш класс UserServiceImpl регистрируется под root прямо сейчас.

EDIT

Try поворота аддитивность к ложным на вашем регистраторе для пакета услуг. аддитивность означает, что сообщения распространяются на родителя, а поскольку родительский корневой и корневой журналов в том же консольном приложении, кажется вероятным, что это вызывает проблему.

+0

Извините, я забыл упомянуть, что класс, с которым у меня возникла проблема, находится в пакете услуг, который является обложкой второго регистратора в log4j.xml. Я даже изменил уровень корня до INFO, он все еще не работает. После того, как я попробовал logger.getRootLogger(). SetLever (level.INFO) начал работать. Похоже, что корневая установка в log4j.xml не работает над этим классом –

+0

Теперь она работает! Спасибо Джим! –

+0

Без проблем, рад, что я мог бы помочь. – Jim

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