我有一个带有log4j2.xml
的java网络应用
我需要为每个包提供不同的级别
例如:
com.myexample.firstmodule.*
这应该是INFO
级别
com.myexample.secondmodule.*
这应该是TRACE
级别
我找到了一些答案,说明如何在.propreties
文件中执行此操作,但我无法理解如何使用.xml
有人可以帮忙吗?
提前致谢
答案 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。