我想使用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/

10-09 03:00