我想使用MDC在我的程序中设置上下文,然后能够在配置文件中设置过滤器,以便仅显示来自特定上下文中的记录器的消息。
MDC mdc;
mdc.put("fieldName", "foo");
LOG4CPLUS_DEBUG(log, "ABC");
mdc.put("fieldName", "bar");
LOG4CPLUS_DEBUG(log, "XYZ");
我只想在log
为"fieldName"
时从"bar"
打印,因此只应在我的日志中打印“XYZ”。
在log4j中,can be done使用带有过滤器的XML格式配置文件。 log4cplus可以使用XML配置文件吗?可以在XML日志中设置这样的过滤器吗?
另外,有没有办法使log4cplus冗长,所以我可以看看它是否找到了我的配置文件,以及它是否能够读取它等等。
我甚至无法找到log4cplus XML配置文件的一个示例或如何读取它。
答案 0 :(得分:2)
Log4cplus不支持任何类型的XML配置文件。这是因为它需要一个XML解析器,这是一个非常重的依赖。
对于使用MDC的过滤,目前没有这样的过滤器。你必须实现自己的。请参阅Filter
课程。
您可以使用log4cplus.configDebug=1
从属性文件设置log4cplus调试。或者,您可以将LOG4CPLUS_LOGLOG_DEBUGENABLED
环境变量设置为1
。前者优先于后者。