1
我需要通過僅包含特定上下文數據的子記錄器發送數據。在這種情況下,我非常想忽略消息模板中的所有內容(文本本身除外),並傳遞由豐富和PushContext語句添加的關鍵上下文數據。這主要是爲了創建一個保持一致的儀表板視圖。添加Serilog子記錄器來限制數據到日誌聚合器
LevelSwitch = new LoggingLevelSwitch { MinimumLevel = LogLevelSerilog.Verbose };
Log.Logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(LevelSwitch)
.Enrich.With<CorrelationIdEnricher>()
.Enrich.With<ThreadIdEnricher>()
.Enrich.FromLogContext()
.WriteTo.Seq("http://localhost/Response")
// Filter to a sublogger for instrumentation...
.WriteTo.Logger(lc => lc.MinimumLevel.Information()
.WriteTo.Seq("http://localhost/Public")
.Filter.ByIncludingOnly(q => q.Properties.ContainsKey("Controller")
|| q.Properties.ContainsKey("Action")
|| q.Properties.ContainsKey("Class")
|| q.Properties.ContainsKey("Method")
|| q.Properties.ContainsKey("Organization")
|| q.Properties.ContainsKey("OrganizationId")
|| q.Properties.ContainsKey("CorrelationId")))
.CreateLogger();
任何想法,爲什麼這不是發送任何事件到子記錄器? (想通了)
任何想法,爲什麼我從主記錄器(每級允許)獲取所有內容?我期望過濾器可以減少進入子記錄器的數據量。即:我只想過濾的數據去到子記錄器。任何添加的數據都應該從日誌中刪除。
已設置爲詳細。添加了對原始帖子的編輯以顯示此內容。 –
我現在正在將事件發送到第二個Seq實例。實例設置時發現是拼寫錯誤。但是,ByIncludingOnly的行爲並不如預期。如果有任何屬性出現,我會得到主記錄器的確切副本。我預計除了列表中的所有屬性外,所有屬性都將被刪除。 –