Log4j2通配符记录器名称

Zac*_*ack 6 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>
Run Code Online (Sandbox Code Playgroud)

基本上,我希望从我编写的代码中获得“信息”级消息,但是我希望外部库仅在警告或更严重的情况下记录日志。

正如我所料,这正在工作,但是“ org.eclipse.jetty”下有很多类

有可能做这样的事情吗?

<Logger name="org.eclipse.jetty.*" level="warn">
    <AppenderRef ref="Console" level="warn"></AppenderRef>
</Logger>
Run Code Online (Sandbox Code Playgroud)

也就是说,我希望整个程序包中的所有内容仅发出警告/错误/致命信息。

我尝试了上面,但没有效果。是否有“通配符”或我可以用来为软件包中的所有内容设置记录器的东西?

Sim*_*ner 8

对于基于属性的配置,您只需使用不带任何通配符的软件包名称即可。也应该使用XML :)

  • 这是否回答了问题?它能够使 org.eclipse.jetty.* 在 lo4j2.xml 中工作吗? (2认同)