使用Spring Batch时,什么是正确的日志记录方法?

4

在使用Spring Batch时,什么是正确的日志记录方法?我应该使用log4j(或类似的工具),还是Spring Batch提供了一些帮助我实例化日志记录器并使用它的工具?也许可以使用日志记录器的某种依赖注入方式?

3个回答

3

我使用过log4j,它是一种简单而好用的方法。


3
我不确定原帖的问题是否得到了解答,所以我会尝试重新表述一下。在Spring Batch中,您可能会有多个线程并且可能需要具有特定于作业的日志记录,以便将特定作业的所有事件记录到单个日志文件中。您需要一个范围直接绑定到正在处理的作业的记录器。当作业完成时,记录器(以及对记录器的所有引用)都消失了。
因此,当您提交Job#1时,所有事件都记录在“job_1.log”中;当您提交Job#2时,其事件被记录在“job_2.log”中,等等。
在log4j中,当您执行“Logger.getLogger('mylogger')”时,您正在告诉LogManager从缓存中获取'mylogger'并将其提供给您。您真正想要的是使用mylogger的配置进行配置的新实例。在Spring中,这通常通过原型bean完成。每次您请求上下文获取'mylogger'时,都会获得一个新实例。

1
请注意,log4j还具有称为嵌套诊断上下文的功能,以在每个线程基础上实现相同的功能:http://logging.apache.org/log4j/1.2/manual.html#Nested_Diagnostic_Contexts - bcoughlan

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接