gpt4 book ai didi

c# - 如何在 Serilog 输出模板中创建可选属性?

转载 作者:太空狗 更新时间:2023-10-29 20:41:33 29 4
gpt4 key购买 nike

我正在尝试为遵循以下格式的 serilog 消息创建一个全局输出模板:

{Timestamp:yyyy-MM-dd HH:mm:ss,fff} [{ComponentName}, {ApplicationName}, {ThreadId}] {Level} ({ErrorId}): {Message} {Exception}

我遇到的问题是,有些消息不包含错误 ID、异常或 ThreadId。因此,当这种情况发生时,我收到一条消息,其中包含一堆字符,这些字符会增加日志消息的噪音,例如,

2015-06-24 15:11:03,234 [Component, MyApp, ] Info (): 这是我正在写的消息

是否可以让Serilog在消息模板中支持可选参数?

最佳答案

我在我的应用程序中使用 Serilog,就像您注意到的那样,“缺失”字段将“消失”,但这些占位符周围的字符格式不会。

我建议更改消息模板的格式,以便可选字段出现在后续行(可以忽略)或格式化为您不会注意到它们的缺失。

您还可以围绕应用程序调用的 Serilog 日志记录方法(logger.Debug、logger.Warning、logger.Information 等)编写一个包装器,它具有逻辑(或重载方法)以了解哪些值是存在和不存在。包装器代码将提供具有正确组合的适当消息模板,以避免消息中出现额外字符。

关于c# - 如何在 Serilog 输出模板中创建可选属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036112/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com