我正在使用log4net,並且當我登錄消息時,我的threadID將被複制到我的文件中。我希望它是一個uniqueID,因此它在文件中永遠不會存在兩次,以便它可以輕鬆搜索。我希望這是正確的。基本上我的轉換圖案包括這些項目如何將每次執行的唯一threadID與log4net輸出關聯起來?
<conversionPattern value="%date [%hex_thread] %method %-5level %logger – %message%newline"/>
這是我的輸出:
2010-07-08 11:12:32426 [B] methodC INFO methodC - 方法C內
2010- 11月7日至8日:12:58316 [B] methodC INFO methodC - 方法C內
2010-07-08 11:13:09284 [A] methodC INFO methodC - 方法C內
2010-07- 08 11:1 5:04,214 [B] methodC INFO methodC - 內部方法C
其中,hex_thread是我的十六進制threadID。你可以看到[B]發生了好幾次,而且它不應該執行,因爲執行時間不同。所以,我想讓它變得獨一無二。所以它的東西不會出現在那一行的任何地方。就像也許「0b87007」這樣的事情,如果我搜索它將是整個行中唯一的事件。我怎樣才能做到這一點?
編輯補充我的修復
我的threadId打印十六進制格式,所以我只是追加幾個字符像這樣的輸出....
long id = System.Threading.Thread.CurrentThread.GetHashCode(); String str = id.ToString("X"); writer.Write("0x0000"+str);
然後輸出會是什麼樣子此
2010-07-09 10:07:37917 [0x00004] methodC INFO methodC - 消息
2010-07-0 9 10:07:37,917 [0x0000B] methodC INFO methodC - 消息
請評論如果我的問題不清楚......我真的需要更快的反應。謝謝所有 – Precious 2010-07-08 05:49:41
如果消息來自同一個線程,那麼它將具有相同的線程ID - 或者我錯過了什麼? – ChrisF 2010-07-08 09:09:34
請不要在您的標題上添加辯護。 – 2010-07-08 09:09:44