log4j logger类名通配符

时间:2016-09-27 16:41:43

标签: java logging log4j wildcard

是否可以在log4j 1.x中指定不基于包的通配符,但基于记录器名称的通配符

我想要这样的事情:

<logger name="*Reporter" >
    <level value="INFO"/>
    <appender-ref ref="ReportFileAppender"/>
</logger>

1 个答案:

答案 0 :(得分:1)

No(请参阅“记录器层次结构”一节)。您要做的是定义一组记录器,这是不可能的,因为每个记录器都有自己的名称。

以下内容应模仿您要实现的目标:

<logger name="Reporter" >
    <level value="INFO"/>
    <appender-ref ref="ReportFileAppender"/>
</logger>

在每个* Reporter课程中:

public class MyReporter {
    private static final Logger logger = LogManager.getLogger("Reporter");

    public MyReporter() {
        logger.debug("foo");
    }
}

我的直觉是你确实应该使用套餐