跨多个java类创建作业报告

跨多个java类创建作业报告,java,scheduled-tasks,Java,Scheduled Tasks,我正在执行需要创建详细报告的计划作业。 报告示例如下所示: date - Started job date - Looking for stuff to process date - Got x stuff to process date - Processing y1 date - done date - Processing y2 date - done date - Processing y3 date - Failed with error : this_is_why_processi

我正在执行需要创建详细报告的计划作业。 报告示例如下所示:

date - Started job 
date - Looking for stuff to process
date - Got x stuff to process
date - Processing y1
date - done
date - Processing y2
date - done
date - Processing y3
date - Failed with error : this_is_why_processing_failed
date - Processing completed
date - Job completed in z seconds
执行所有处理的实际代码可以在多个类中。 实现类似这样的东西的明显方法是使用StringBuilder并传递它,以便附加消息

另一种更高级的方法是创建一个单例,并在参与处理的所有类中以某种方式知道一个id(它可能是线程名吗?),然后将报告字符串存储在那里

有更好的方法吗? 是否有创建工作报告的最佳做法


作业将使用ejb计时器触发。

您应该使用记录器,而不是传递
StringBuilder

带有
ThreadLocal
成员字段的单例可能是存储“令牌”的好地方用于为同一作业工作的所有类。

或者您可以使用正是出于这个原因而设计的。

您是否可以改进报表示例的格式?您的意思是我应该使用或创建一个自定义附加器,其输出为字符串或某个内存对象,同时为每个线程创建一个这样的日志。好的,我会研究一下。每个应用程序可以使用一个(请参阅标记的使用)。它也是线程安全的。