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

时间:2014-11-03 11:20:06

标签: java log4j2

我想在配置文件中定义自定义日志级别,如下所示

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

我想在Java Code中访问它们,如

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上放置一个阈值过滤器,与配置文件中定义的级别相比......

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

2 个答案:

答案 0 :(得分:1)

定义如下自定义级别:

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

所以你需要的是从配置文件中读取这些级别(在启动时)并将它们分配给一些静态变量。

答案 1 :(得分:0)

这应该做的工作:

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

the log4j2 doc

中所述