2015-04-17 4 views
2

Я пытаюсь понять следующий log4j.xml файл:Как понять log4j.xml файл

---Item 1 
<!-- Appenders --> 
<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p: %c - %m%n" /> 
    </layout> 
</appender> 
----Item 2 
<!-- Application Loggers --> 
<logger name="com.somepackagename"> 
    <level value="info" /> 
</logger> 
--Item 4 
<logger name="org.hibernate.validator"> 
    <level value="debug" /> 
</logger>  
    ---Item 5 
<!-- Root Logger --> 
<root> 
    <priority value="warn" /> 
    <appender-ref ref="console" /> 
</root> 
</log4j:configuration> 

Может кто-нибудь объяснить, что делает каждый элемент?

ответ

1
<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p: %c - %m%n" /> 
    </layout> 
</appender> 

Агентуры несут ответственность за доставку LogEvents в пункт назначения. Имя приложения - это «консоль», и это имя, которое используется для ссылки на приложение в остальной части файла конфигурации. Класс для использования для приложения - org.apache.log4j.ConsoleAppender.

Консоль appender имеет один элемент элемента, определенный. Глядя на javadoc для ConsoleAppender, метод setTarget используется для выбора потока консоли для печати сообщений System.out или System.err. Это настраивает приложение для использования System.out.

Консоль appender также имеет определенный элемент макета, который использует org.apache.log4j.PatternLayout. Глядя на javadoc для PatternLayout, метод setConversionPattern принимает строку, описывающую макет для сообщений. Детали этого формата также можно найти в javadoc.

Тогда у вас есть три лесорубов:

Регистратор элемент должен иметь имя атрибута. Это имя регистратора, используемого при создании экземпляра Logger (обычно это полное имя класса, в данном случае com.somepackagename).

<!-- Application Loggers --> 
<logger name="com.somepackagename"> 
    <level value="info" /> 
</logger> 

<logger name="org.hibernate.validator"> 
    <level value="debug" /> 
</logger>  

Наиболее важным регистратором, который необходимо настроить, является корневой регистратор. Корневой регистратор настроен для вывода сообщения журнала на уровне «debug» или выше в appender с именем «console».

<!-- Root Logger --> 
<root> 
    <priority value="warn" /> 
    <appender-ref ref="console" /> 
</root> 

Более подробную информацию о приоритетных значений log4j: log4j logging hierarchy order

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