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