0

我无法使用带有 log4j-over-slf4j 1.7.x 依赖项的 logger.addAppender 方法添加控制台附加程序。此外,我无法设置特定控制台 Appender 的目标(即 SYSTEM_OUT/SYSTEM_ERR)。

我已经初始化了一个控制台 appender 对象,并尝试通过将该引用类型转换为 Appender 来将该引用推送到 addAppender 方法中。但在这种情况下,我无法为控制台附加程序参考设置 Target/WriterLocation(即 SYSTEM_OUT/SYSTEM_ERR)。我使用了下面的代码片段-

ConsoleAppender ca = new ConsoleAppender(); ca.setWriter(new OutputStreamWriter(System.out)); // 此行与 log4j-over-slf4j jar 不兼容 ca.setLayout(new PatternLayout("%-5p [%t]: %m%n")); logger.addAppender(ca);

请帮我解决这个问题。

4

1 回答 1

0

你在做什么没有多大意义。log4j-over-slf4j 会将 logger.debug()、logger.info() 等调用路由到 slf4j,然后可能会路由到其他要记录的日志框架。您的代码正在尝试操作不会参与日志记录的 log4j 1 对象,因为您将日志事件路由到 SLF4J(这就是 log4j-over-slf4j 不支持其中许多事件的原因)。

为了帮助您,我们会知道您真正想要使用的日志记录实现。

于 2020-07-08T21:52:26.260 回答