Log4j2通配符记录器名称

时间:2017-06-14 17:55:27

标签: java logging wildcard log4j2 log-level

我正在使用log4j对我的某个应用程序进行一些日志记录。我的配置中的记录器看起来像这样。

<Root level="info">
    <AppenderRef ref="Console"/>
</Root>

<Logger name="org.eclipse.jetty.server.Server" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.util.log" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.server.ServerConnector" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>

基本上,我想要&#34;信息&#34;来自我编写的代码的级别消息,但是我希望外部lib只记录某些事情是警告还是更可怕。

这正如我所料,但是&#34; org.eclipse.jetty&#34;

下有很多课程。

是否可以做这样的事情?

<Logger name="org.eclipse.jetty.*" level="warn">
    <AppenderRef ref="Console" level="warn"></AppenderRef>
</Logger>

也就是说,我希望整个包中的所有内容都只是警告/错误/致命。

我尝试了上述内容并没有效果。是否有#34;通配符&#34;或者我可以用来为包中的所有东西设置记录器?

1 个答案:

答案 0 :(得分:7)

对于基于属性的配置,您只需获取包名称而不使用任何通配符。也应该使用XML:)