在配置文件中定义自定义日志级别,并使用Java代码Log4J2访问它们



我想在下面的配置文件中定义自定义日志级别

<CustomLevels>
    <CustomLevel name="DIAG" intLevel="350" />
    <CustomLevel name="NOTICE" intLevel="450" />
    <CustomLevel name="VERBOSE" intLevel="550" />
</CustomLevels>

我想用类似的Java代码访问它们

Level diag = // get level defined in configuration
// and use them like this
logger.log(diag, "message");
// and then this 'message' is printed in the appender with thresholdfilter as diag

然后在appender上设置一个阈值过滤器,与配置文件中定义的级别进行比较。。。

这可能吗?如果是,那么怎么做呢?

定义如下自定义级别:

public static final Level DIAG = Level.forName("DIAG", 350)

因此,您只需要从配置文件中读取这些级别(在启动时),并将它们分配给一些静态变量。

这应该完成任务:

logger.log(Level.getLevel("DIAG"), "your message");

如log4j2文档

中所述

最新更新