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

时间:2011-05-19 18:43:14

标签: java logging spring-batch

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

3 个答案:

答案 0 :(得分:3)

我用过log4j。以及简单而美观的方法。

答案 1 :(得分:2)

您应该考虑Slf4J(日志记录API)+ Logback(日志记录实现),因为Log4j旨在由此二重奏继承。

更多: http://www.slf4j.org/ http://logback.qos.ch/

答案 2 :(得分:2)

我不确定原来海报的问题是否得到了解答,所以我会尝试重复一下这个问题。在Spring Batch中,您可能有多个线程,并且您可能希望具有特定于作业的日志记录,以便将特定作业的所有事件记录到单个日志文件中。您需要一个记录器,其范围与您正在处理的作业直接相关。作业完成后,记录器(以及对记录器的所有引用)都会消失。

因此,当您提交作业#1 时,所有事件都会记录到“job_1.log”;当您提交作业#2 时,其活动会记录到“job_2.log”等。

在log4j中,当您执行“Logger.getLogger('mylogger')”时,您告诉LogManager将'mylogger'从缓存中取出并提供给它给你。你真正想要的是一个新的记录器实例,使用mylogger的配置进行配置。在Spring中,这可能通常使用原型bean来完成。每当您询问上下文'mylogger'时,您都会获得一个新实例。