Log4j 1和2 - 来自两个Log4J版本的自定义appender同时写入同一文件

时间:2017-07-03 11:13:00

标签: java logging log4j log4j2

我想从Log4J 1.x迁移到Log4J 2,但同时我想让Log4J支持使用Log4J的任何外部功能(jar)。有一些自定义的appender用Log4J编写,所以appender将根据Log4J2使用插件重写。因此需要两个配置文件来支持每个版本,并且需要将两个版本的日志写入同一文件,格式与自定义appender中定义的相同。

我发现在一个版本中可以同时将多个appender写入同一个文件,但是来自两个Log4J版本的appender是否可以同时写入同一个文件?如果是推荐的做法,如果不推荐,请提出替代方案。

1 个答案:

答案 0 :(得分:1)

使用Log4j2和Log4j 1.2(不是适配器而是实际实现)同时为应用程序进行日志记录将是一种不寻常的设置。

将两个日志记录库配置为写入同一文件会增加风险。它可能会起作用,也可能不起作用。当然不是这些库的设计目的。

我不推荐这样的设置。

最安全的做法是推迟你的Log4j2迁移,直到你的log4j 1.2自定义appender被移植到Log4j2。然后对使用Log4j 1.2 API的外部库使用Log4j2实现和log4j-1.2-api-2.x适配器模块。