log4j2 为来自环境变量的特定 类 启用调试

log4j2 enabling debug for specific classes from environment variable

我们正在 JBoss 7..3 EAP 中部署 Java Web 应用程序。 我们需要为某些特定的 类(即 org.mycompany.mypackage)启用设置调试级别。 如此处所述: https://logging.apache.org/log4j/2.x/manual/configuration.html 只需设置环境变量

LOG4J_DEBUG

整个系统的日志级别设置为调试。 我们想知道是否有办法针对特定 classes/packages 预先感谢 r.

LOG4J_DEBUG 环境变量没有为您的应用程序启用调试日志记录。它为 Log4j 2 的内部启用调试日志记录。您可以通过在 Root Logger 上指定级别来设置应用程序的默认日志记录级别。

<Loggers>
  <Root leve="info">
    <Appender-Ref ref="Console"/>
  </Root>
</Loggers>

您可以更改此设置,以便通过执行以下操作从环境变量设置默认级别:

<Loggers>
  <Root leve="${env:DEFAULT_LEVEL:-INFO}">
    <Appender-Ref ref="Console"/>
  </Root>
</Loggers>

为特定 类 或包设置日志记录级别的方法是使用同一部分中所述的 log4j 配置文件。如果你想通过环境变量配置级别,那么你可以通过执行以下操作来实现:

<Logger name="com.mycorp.myservice.dao" level="${env:DAO_LEVEL:-WARN}"\>

如果名为 DAO_LEVEL 的环境变量不存在,这将使用默认值 WARN。