Logging 专用log4j日志

Logging 专用log4j日志,logging,log4j,Logging,Log4j,我有一个文件传输应用程序,它需要将特定事件写入特定的日志文件,而所有事件都要写入公共日志文件。例如: 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 ...

我有一个文件传输应用程序,它需要将特定事件写入特定的日志文件,而所有事件都要写入公共日志文件。例如:

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”appender,在我的应用程序组中,将我所有的源B文件/目录放入一个配置中,并将“BLog”分配给它,在代码中检查每次传输文件时,如果配置中有appender,则获取它并调用doAppend

但是,如果我将appender添加到log4j配置中,这不会使它接收所有事件吗?我可以不在配置中将appender分配给root而创建appender,但仍然可以通过编程方式获取它吗?如果是这样的话,这是否意味着每次我想向B_file.log发送事件时,我都必须获取appender,将其添加到root,调用doAppend,然后删除appender

有没有更干净的方法


提前谢谢

我认为你的问题可以通过应用这个问题的解决方案来解决:

并在自定义appender中添加调用,以同时写入主appender

希望这有帮助