2015-08-28 44 views
1

有沒有一種方法可以配置Serilog電子郵件接收器以在電子郵件正文中包含附加屬性?對Serilog電子郵件接收器記錄屬性

我可以看到默認的格式是:

{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception} 

但我不知道是否有可以使用額外的令牌或代碼的方式來輕鬆地覆蓋此行爲。

回答

0

以包括特定的其他屬性可以傳遞outputTemplate到配置方法:

.WriteTo.Email(..., outputTemplate: "Machine: {MachineName}") 

這裏沒有任何「通配符」到輸出所有屬性。

+0

謝謝 - 事情是我不會提前知道名字。看看源代碼,它看起來像我需要設置一個替代ITextFormatter默認的MessageTemplateTextFormatter,但由於EmailSink類型不公開,我不能這樣做,沒有編輯和重建電子郵件接收器本身。 – chrisb

+0

我認爲如果EmailSink類型被公開,這將是更直接的。 – chrisb

+0

即使屬性不存在於特定日誌中,這樣做是否能夠正常工作?例如,如果我是具有指定屬性的LogContext內部的異常處理,並且還沒有屬性的LogContext? – ThePower