2016-01-27 49 views
0

我正在實施需要創建詳細報告的計劃作業。 報告例子是這樣的:跨多個java類創建作業報告

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定時器觸發。

+0

請您改進報告範例的格式? –

回答

0

而不是傳遞StringBuilder你應該使用記錄器。 具有ThreadLocal成員字段的單身人士可能是存儲用於所有爲同一作業工作的類的「標記」的好地方。

0

或者您可以使用專爲此設計的Log4j

+0

你的意思是我應該使用或創建一個自定義的appender,它的輸出是一個String或者一些內存對象,並且同時爲每個線程創建一個這樣的日誌。好的,我會研究一下。 – user1533878

+0

您可以爲每個應用程序使用一個(請參閱使用標籤)。它也是線程安全的。 –