如何理解log4j.xml文件

时间:2015-04-17 03:30:07

标签: java logging log4j

我正在尝试了解以下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 个答案:

答案 0 :(得分: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>

Appender负责将LogEvents传递到目的地。 appender的名称是“console”,这是用于在配置文件的其余部分中引用appender的名称。用于appender的类是org.apache.log4j.ConsoleAppender。

控制台appender定义了一个param元素。查看ConsoleAppender的javadoc,setTarget方法用于选择要将消息打印到System.out或System.err的控制台流。这个配置appender使用System.out。

控制台appender还定义了一个使用org.apache.log4j.PatternLayout的布局元素。查看PatternLayout的javadoc,setConversionPattern方法接受一个描述消息布局的字符串。此格式的详细信息也可以在javadoc中找到。

然后你有三个记录器:

记录器元素必须具有name属性。这是创建Logger实例时使用的记录器的名称(通常是完全限定的类名,在本例中为com.somepackagename)。

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

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

您需要配置的最重要的记录器是根记录器。根记录器配置为将“debug”或更高级别的日志消息输出到名为“console”的appender。

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

有关log4j优先级值的更多信息: log4j logging hierarchy order