C# 如何将serilog消息模板与loggly一起使用

C# 如何将serilog消息模板与loggly一起使用,c#,asp.net-core,serilog,loggly,C#,Asp.net Core,Serilog,Loggly,我想将Serilog消息模板与Loggly一起使用 我已经在我的应用程序中配置了Loggly和Serilog var logglySettings = new LogglySettings(); configuration.GetSection("Serilog:Loggly").Bind(logglySettings); this.SetupLogglyConfiguration(logglySettings); Log.Logger = new LoggerConfiguration()

我想将Serilog消息模板与Loggly一起使用

我已经在我的应用程序中配置了Loggly和Serilog

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);
}
但这不符合Serilog模式

我想将Serilog日志记录模式用作:

public void Error<T, T1>(string message, T property0, T1 property1)
public void错误(字符串消息,T属性0,T1属性1)

您需要提供一个包含所有要记录的属性的消息模板,而不仅仅是消息本身,例如

Log.Error(“保存{RequestData}:{Exception}时出错”,RequestData,Exception);
由于存在接受异常参数的显式重载
Log.Error
,因此我建议改用它,因为这样可以实现更清晰的表示和更深入的分解(例如,通过)。如果您想要的不仅仅是它的
ToString()
表示,还可以使用
@
模板字符强制深度分解请求数据,例如

Log.Error(异常,“未能保存{@RequestData}”,RequestData)
或者,如果您特别不想在消息本身中包含请求数据,您可以将其添加为上下文信息,例如

Log.ForContext(“RequestData”、RequestData、DestructureObject:true)
.错误(异常“无法保存数据”)
public void Error<T, T1>(string message, T property0, T1 property1)