1

我需要为我的应用程序中的不同对象实例创建单独的日志。例如,如果我们使用书籍,我需要为每本书单独的日志文件。它适用于 log4j2.xml 文件,但我可能在内存中有数百个这样的对象,我不想创建这么长的配置文件。我想从代码创建附加程序和记录器。我寻找工作代码示例但一无所获。

我尝试使用 RollingFileAppender.createAppender 但没有找到如何将它附加到记录器并且未能获得此函数参数的正确值。请帮助工作代码\配置如何为每个对象属性创建单独的日志文件。

可能可以使用 log4j2.xml 中的 appender\logger 名称中的通配符或使用渲染器来完成?

4

2 回答 2

1

如果您正在寻找基于“书”拆分日志文件,而不是创建一个非常具体的附加程序或以编程方式配置 log4j 来处理它,您应该看看 MDC。

通过正确的 MDC 设置,应该可以直接根据 MDC 内容拆分日志文件(例如,在 LogBack 中,有一个 SiftingAppender。我相信有类似的 3rd-party appender 可以做同样的事情)

于 2013-07-02T01:47:19.667 回答
0

您可以. #initialize(String contextName, ClassLoader loader, String configLocation)_ (您可以为类加载器传递 null。)org.apache.logging.log4j.core.config.Configurator

请注意,此类不是公共 API 的一部分,因此您的代码可能会因任何次要版本而中断

于 2013-07-01T21:45:24.020 回答