我正在使用Log4C并享受其功能,但缺少一项功能:每个类别有多个appender 引自http://log4c.sourceforge.net/:“未来的版本将为每个类别处理多个appender”。
我需要将单个日志消息输出到多个位置和格式(XML文件,文本文件和标准输出)
我已经创建了3个具有适当格式的appender并且它们都可以自行工作但如果我尝试将所有三个分配到Log4crc配置文件中的单个类别,它将只执行第一个条目。 e.g。
<category name="log.plugin" priority="debug" appender="file" />
<category name="log.plugin" priority="debug" appender="xml" />
<category name="log.plugin" priority="debug" appender="stdout"/>
在这种情况下,它只会写入“file”appender。如果“xml”appender首先出现在列表中,那么它只会写入“xml”appender。
是否有人为每个类别成功实施了多个appender?或者有合适的解决方法吗?
我发现的一种方法是制作长类别名称并利用类别层次结构。 e.g。
<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”,它将写入所有三个位置。我不太喜欢这种解决方法,因为它使配置文件变得混乱,因为我将需要写入这三个appender的许多类别。
感谢您的帮助!