[英]How to do Java Logging for different Interleaved threads in synchronous way?
我想用例子直接解釋我的問題。 如果還需要其他信息,請添加評論。
我有一個小應用程序(SpringBoot + Java),它使用ThreadPool來執行幾個任務。 所以假設我的池中有2個線程。 現在,log4j用於記錄。 它將所有線程的日志寫入單個文件,並且所有2個線程的日志數據都是交錯的。
所以每個線程都像 -
[Thread-1][08:15:00] entered into application
[Thread-1][08:15:00] entered method A
[Thread-1][08:15:05] exit method A
[Thread-1][08:15:10] entered method B
[Thread-1][08:15:15] exit method B
[Thread-1][08:15:30] exit from application
[Thread-2][08:15:01] entered into application
[Thread-2][08:15:01] entered method A
[Thread-2][08:15:04] exit method A
[Thread-2][08:15:11] entered method B
[Thread-2][08:15:12] exit method B
[Thread-2][08:15:22] exit from application
但是我的日志文件在時間戳的基礎上有這些條目 -
[Thread-1][08:15:00] entered into application
[Thread-1][08:15:00] entered method A
[Thread-2][08:15:01] entered into application
[Thread-2][08:15:01] entered method A
[Thread-2][08:15:04] exit method A
[Thread-1][08:15:05] exit method A
[Thread-1][08:15:10] entered method B
[Thread-2][08:15:11] entered method B
[Thread-2][08:15:12] exit method B
[Thread-2][08:15:14] exit from application
[Thread-1][08:15:15] exit method B
[Thread-1][08:15:30] exit from application
我希望我的日志文件打印線程執行,而不是時間戳明智。 我希望我的日志文件在其他線程啟動之前完全打印每個線程。 我怎么能實現這一點。
我已經搜索並發現下面的文章是最接近的,但我不想要不同的日志文件 - 如何在不同的日志文件中記錄多個線程?
我需要將所有日志數據輸出到按線程名稱分組的單個日志文件中,並按線程開始時間排序。
我想在控制台appender中分離日志是行不通的我建議為每個Thread
定義單獨的FileAppenders
就像它在這里描述的那樣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.