我有一个文件传输应用程序,它要求将特定的事件写入特定的日志文件,而所有事件都写入公共日志文件。例如:
File comes in from source A, events get written to file.log
File comes in from source B, events get written to file.log and B_file.log
File comes in from source C, events get written to file.log
...我在考虑在我的log4j配置中创建一个"BLog“附加器,在我的应用程序组中,将我所有的源B文件/目录都添加到一个配置中,并将"BLog”分配给它,并且在每次我们传输文件时检查代码中是否有一个附加器,如果有,就获取它并调用doAppend。
但是,如果我将附加器添加到log4j配置中,它不会接收所有事件吗?我是否可以在不将其分配给配置中的root的情况下创建附加器,但仍然可以通过编程获得它?如果是这样,这是否意味着每次我想要向B_file.log发送事件时,我都必须获取附加器,将其添加到根目录,调用doAppend,然后删除附加器?
有没有更干净的方法来做这件事?
提前感谢!
发布于 2014-02-14 01:25:23
我认为你的问题可以通过将解决方案应用于这个问题来解决:
log4j: Log output of a specific class to a specific appender
并在您的自定义附加器中添加调用,以也写入主要附加器。
希望这能有所帮助
https://stackoverflow.com/questions/21760644
复制相似问题