2017-07-07 41 views
3

我已經配置了我的記錄器廠,像這樣,如何使用.NET Core日誌記錄過濾基於類別的日誌文件?

loggerFactory 
    .AddConsole() 
    .AddDebug() 
    .AddFile("Logs/trace-{Date}.txt"); 

,在我的構造函數我需要依賴例如上ILogger<MyServiceClass>。我的理解是,框架將爲我的服務類創建一個記錄器實例,並根據類型的全名創建類別名稱。

在我的日誌文件,我看到這樣的消息:

2017-07-07T09:10:46.5678506 + 02:00 0HL650T1MS1RU [WRN]插座註冊失敗參與者b943174e-8022-4e33-ef0d -08d4c4bc4879在談判42d9720f-32a2-46f9-9042-08d4c4bc4881。 (799c4f21)

我似乎記得讀書的地方,類別被散列以節省文件大小,所以我懷疑時間戳和日誌級別(0HL...1RU)之間的一口表示類別,但是這並不是真正搜索或可發現的。

如何配置我的記錄器不在日誌文件中混淆類別名稱?

回答

2

根據代碼,您使用Serilog.Extensions.Logging.File(具體的記錄器實現很重要)。那個有趣的字符串0HL...1RU實際上是一個獨特的請求ID。我猜這個記錄器不支持純文本日誌的日誌類別。

解決方法1:使用JSON日誌:

loggerFactory.AddFile("filename", isJson: true); 

SourceContext屬性將出現在日誌輸出具有日誌類別:

"SourceContext":"MyNamespace.MyServiceClass" 

解決方法2:只使用另一third-party file logger像NLOG或完全獨立Serilog API

相關問題