2

我正在使用 Log4C 并享受该功能,但缺少一个功能:每个类别多个附加程序。来自http://log4c.sourceforge.net/
的引用:“未来版本将处理每个类别的多个附加程序”。

我需要将单个日志消息输出到多个位置和格式(XML 文件、文本文件和标准输出)

我已经创建了 3 个具有适当格式的附加程序,它们都可以自己正常工作,但是如果我尝试将所有三个附加到 Log4crc 配置文件中的单个类别,它只会执行第一个条目。例如

<category name="log.plugin"  priority="debug" appender="file" /> 
<category name="log.plugin"  priority="debug" appender="xml" /> 
<category name="log.plugin"  priority="debug" appender="stdout"/>

在这种情况下,它只会写入“文件”附加程序。同样,如果“xml”附加程序首先出现在列表中,它只会写入“xml”附加程序。

有没有人成功地为每个类别实现了多个附加程序?或有合适的解决方法?

我发现的一种方法是制作长类别名称并利用类别层次结构。例如

<category name="log.plugin."  priority="debug" appender="file" /> 
<category name="log.plugin.foo"  priority="debug" appender="xml" /> 
<category name="log.plugin.foo.bar"  priority="debug" appender="stdout"/>

然后,如果我在初始化记录器时引用“log.plugin.foo.bar”,它将写入所有三个位置。我不太喜欢这种解决方法,因为它会使配置文件变得混乱,因为我将有许多类别需要写入这三个附加程序。

谢谢你的帮助!

4

0 回答 0