作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Loggly 中使用 Serilog 消息模板。
我已将带有 Serilog 的 Loggly 配置到我的应用程序中。
var logglySettings = new LogglySettings();
configuration.GetSection("Serilog:Loggly").Bind(logglySettings);
this.SetupLogglyConfiguration(logglySettings);
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
但我无法将多个属性发送到 loggly.com
例如我想使用:
public void Error<T, T1>(string message, T property0, T1 property1)
{
Log.Error(message, property0, property1);
}
我可以将多个属性发送为
return this.logger.Error("Could not save data.", new { Exception = ex, RequestData = requestData });
但这不符合 Serilog 模式。
我想将 Serilog 日志记录模式用作:
public void Error<T, T1>(string message, T property0, T1 property1)
最佳答案
您需要提供一个消息模板,其中包含您要记录的所有属性,而不仅仅是消息本身,例如
Log.Error("Error while saving {RequestData}: {Exception}", requestData, exception);
由于 Log.Error
有一个接受异常参数的显式重载,我建议改用它,因为这将实现更清晰的表示和更深入的解构(例如,通过 Demystify ).如果您想要的不仅仅是它的 ToString()
表示,您还可以使用 @
模板字符强制深度解构请求数据,例如
Log.Error(exception, "Failed to save {@RequestData}", requestData)
或者,如果您特别不想在消息本身中包含请求数据,您可以将其添加为上下文信息,例如
Log.ForContext("RequestData", requestData, destructureObjects: true)
.Error(exception, "Could not save data.")
关于c# - 如何在 loggly 中使用 serilog 消息模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57561153/
我是一名优秀的程序员,十分优秀!