Serilog 附加属性
Serilog Additional Properties
我使用 Serilog 并将事件记录到 SQL 服务器(使用 Serilog、Serilog.Framework.Logging 和 Serilog.Sinks.MSSqlServer 库)。
作为 MVC6 应用程序的一部分,当我记录事件并设置包含属性的选项时,我在 XML 列中看到一些额外的属性。
如果我发出类似下面的语句:
Log.Information("{Property1}", "Value1");
我在“属性”列中看到类似以下内容:
<properties>
<property key="Property1">Value1</property>
<property key="SourceContext">WebApplication4.Controllers.BaseController</property>
<property key="ActionId">1b9f9c7e-7c5c-4b14-a30d-99f2ebc88c51</property>
<property key="RequestId">80000191-0001-f000-b63f-84710c7967bb</property>
</properties>
这些额外的属性从何而来?我可以设置与这些类似的其他属性吗?如果是这样,我在哪里设置它们?如果我在消息中包含其他属性(类似于上面的 Property1),我可以设置其他属性,但我可能希望包含消息中没有的其他属性。
可以通过三种方式解决此问题。
第一种是使用ForContext()
创建一个附加特定属性的记录器实例:
var specific = Log.ForContext("SomeProperty", 42);
specific.Information("This has properties attached");
第二种是使用增强剂:
Log.Logger = new LoggerConfiguration()
.Enrich.WithMachineName()
// Other config...
第三个是LogContext
.
using (LogContext.PushProperty("SomeProperty", 42))
{
Log.Information("This has properties attached");
}
为此需要进行一些小的设置,请查看 Serilog wiki 上的信息。
我使用 Serilog 并将事件记录到 SQL 服务器(使用 Serilog、Serilog.Framework.Logging 和 Serilog.Sinks.MSSqlServer 库)。
作为 MVC6 应用程序的一部分,当我记录事件并设置包含属性的选项时,我在 XML 列中看到一些额外的属性。
如果我发出类似下面的语句:
Log.Information("{Property1}", "Value1");
我在“属性”列中看到类似以下内容:
<properties>
<property key="Property1">Value1</property>
<property key="SourceContext">WebApplication4.Controllers.BaseController</property>
<property key="ActionId">1b9f9c7e-7c5c-4b14-a30d-99f2ebc88c51</property>
<property key="RequestId">80000191-0001-f000-b63f-84710c7967bb</property>
</properties>
这些额外的属性从何而来?我可以设置与这些类似的其他属性吗?如果是这样,我在哪里设置它们?如果我在消息中包含其他属性(类似于上面的 Property1),我可以设置其他属性,但我可能希望包含消息中没有的其他属性。
可以通过三种方式解决此问题。
第一种是使用ForContext()
创建一个附加特定属性的记录器实例:
var specific = Log.ForContext("SomeProperty", 42);
specific.Information("This has properties attached");
第二种是使用增强剂:
Log.Logger = new LoggerConfiguration()
.Enrich.WithMachineName()
// Other config...
第三个是LogContext
.
using (LogContext.PushProperty("SomeProperty", 42))
{
Log.Information("This has properties attached");
}
为此需要进行一些小的设置,请查看 Serilog wiki 上的信息。