我想使用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配置文件的一个示例或如何读取一个示例。
最佳答案
Log4cplus不支持任何类型的XML配置文件。这是因为这将需要XML解析器,并且这是一个非常严重的依赖项。
至于使用MDC进行过滤,目前还没有这种过滤器。您将必须实现自己的。请参见 Filter
类。
您可以使用log4cplus.configDebug=1
从属性文件设置log4cplus调试。或者,您可以将LOG4CPLUS_LOGLOG_DEBUGENABLED
环境变量设置为1
。前者优先于后者。
关于c++ - log4cplus是否支持xml配置文件和条件日志记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22815477/