亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何強制對枚舉進行 Serilog 標記

如何強制對枚舉進行 Serilog 標記

C#
Cats萌萌 2021-07-01 10:01:55
我正在使用 Serilog 將我們的 log4net 記錄器替換為結構化日志記錄。我想使用 Enum 在代碼中強制執行標記,但我在如何執行時遇到了一些困難?,F在我的日志看起來像這樣:logger.ErrorFormat("Proxy Logic for the Item {Item} failed. Swallow exception", Item); 當ErrorFormat簽名是void ErrorFormat(string format, params object[] args);但我不知道如何替換Item為類似LogTags.TagA. 當 TagA 是一個 Enum 時,它會給我一種方法來為我的標記強制執行統一的標準。所以它看起來像:public enum LogTags{TagA,...}public class Foo{     public void DoError()     {     logger.ErrorFormat("Proxy Logic for the Item {@LogTags.TagA} failed. Swallow exception", Item);     }}     實現這一目標的最佳實踐是什么?
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

Serilog 中的屬性名稱需要是簡單的非點標識符,因此像這樣的名稱Enum.LogTags.Item不能直接使用。


如果簡單的名稱不夠用,您可以使用類似下面的模式來強制此嵌套:


logger.ErrorFormat(

  "Proxy Logic for the Item {@Enum} failed. Swallow exception",

  new { LogTags = new { Item }});


查看完整回答
反對 回復 2021-07-10
  • 1 回答
  • 0 關注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號