2

我想使用 MDC 在我的程序中设置一个上下文,然后能够在配置文件中设置一个过滤器以仅在特定上下文中显示来自记录器的消息。

MDC mdc; 
mdc.put("fieldName", "foo"); 
LOG4CPLUS_DEBUG(log, "ABC"); 

mdc.put("fieldName", "bar"); 
LOG4CPLUS_DEBUG(log, "XYZ"); 

我只想从logwhen "fieldName"is开始打印"bar",所以只有“XYZ”应该打印到我的日志中。

在 log4j 中,这可以使用带有过滤器的 XML 格式配置文件来完成。log4cplus 可以使用 XML 配置文件吗?可以在 XML 日志中设置这样的过滤器吗?

另外,有没有办法让 log4cplus 变得冗长,所以我可以查看它是否正在找到我的配置文件,以及它是否能够读取它等。

我什至找不到 log4cplus XML 配置文件的一个示例或如何阅读一个示例。

4

1 回答 1

2

Log4cplus 不支持任何类型的 XML 配置文件。这是因为它需要一个 XML 解析器,这是一个非常严重的依赖项。

至于使用MDC的过滤,目前还没有这样的过滤器。你必须实现你自己的。见Filter课堂。

您可以使用从属性文件设置 log4cplus 调试log4cplus.configDebug=1。或者您可以将LOG4CPLUS_LOGLOG_DEBUGENABLED环境变量设置为1. 前者优先于后者。

于 2014-04-02T16:09:35.787 回答