4

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

4

3 回答 3

3

我不确定原始发帖人的问题是否已得到解答,因此我将尝试重述一下。在 Spring Batch 中,您可能有多个线程在运行,并且您可能希望拥有特定于作业的日志记录,以便将特定作业的所有事件记录到单个日志文件中。您需要一个范围与您正在处理的作业直接相关的 Logger。作业完成后,记录器(以及对记录器的所有引用)消失。

因此,当您提交Job#1时,所有事件都会记录到"job_1.log";当您提交Job#2时,其事件将记录到"job_2.log"等。

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

于 2014-03-18T21:43:05.880 回答
3

我用过log4j。它是简单而好的方法。

于 2011-05-19T18:48:28.110 回答
2

您应该考虑 Slf4J(日志记录 API)+ Logback(日志记录实现),因为 Log4j 旨在通过这个二重奏获得成功。

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

于 2011-11-14T15:41:37.270 回答