Log4j2.xml中每个包的Log4J不同的日志级别

时间:2017-11-01 08:55:29

标签: java log4j2

我有一个带有log4j2.xml的java网络应用 我需要为每个包提供不同的级别 例如:

com.myexample.firstmodule.*这应该是INFO级别 com.myexample.secondmodule.*这应该是TRACE级别

我找到了一些答案,说明如何在.propreties文件中执行此操作,但我无法理解如何使用.xml

有人可以帮忙吗?

提前致谢

2 个答案:

答案 0 :(得分:5)

log4j网站包含有关如何执行此操作的详细信息,但这是他们提供的xml配置的基本示例:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="com.foo.Bar" level="trace">
      <AppenderRef ref="Console"/>
    </Logger>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

如您所见,Loggers部分可以包含Logger标记,您可以在其中定义所需任何包的级别。

答案 1 :(得分:3)

试试这个

   <logger name="com.myexample.firstmodule" level="INFO" additivity="false">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="FILE-AUDIT" />
        </logger>
        <logger name="com.myexample.secondmodule" level="TRACE" additivity="false">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="FILE-AUDIT" />
        </logger>

在我的配置中STDOUT代表控制台记录器和文件记录器的FILE-AUDIT。