我嘗試使用沒有任何第三方庫的默認 .NET 核心日志記錄工具。所以,提問。帶有 Json 格式化程式的控制臺記錄器是否支持物件的 json 序列化?
我在 appsettings 中有以下配置
"Logging": {
"Console": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information",
"Microsoft.Hosting.Lifetime": "Information"
},
"FormatterName": "json",
"FormatterOptions": {
"SingleLine": true,
"JsonWriterOptions": {
"Indented": true
}
}
}
},
以下行
logger.LogDebug("RequestId:{requestId} ResponseInfo: {@response} ", requestName, response);
使用@response物件的字串表示形式生成輸出,在內部它仍然呼叫 ToString(),但是 Caution 部分中的檔案說
日志基礎設施本身已經管理了日志訊息的序列化,所以如果你要傳入一個已經序列化的日志訊息——它將是雙序列化的 檔案
這一點我認為它應該序列化物件。
uj5u.com熱心網友回復:
我認為內置ILogger不支持這一點。這就是為什么我們可以嘗試新的 System.Text.Json 源代碼生成器。
新的 System.Text.Json 源生成器可以提高日志記錄性能。
我想我們也可以選擇第三方包,比如Serilog. 這應該更容易做到這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/426956.html
