Serilog Azure表存储和上下文属性

时间:2018-04-11 19:40:30

标签: c# asp.net-core-2.0 serilog

我试图在Serilog.Sinks.AzureTableStorage中使用AzureTableStorageWithProperties,并且我有一个附加到上下文的属性;像这样的东西:

using (LogContext.PushProperty("CameraId", camera.Id)
{
  /* ... */
}

所以,我想知道如何配置记录器来考虑这个属性,并在它出现在上下文时为它创建一个列。

我试过这个,但它似乎没有起作用:

Log.Logger = new LoggerConfiguration()
  .ReadFrom.Configuration(configuration)
  .WriteTo.AzureTableStorageWithProperties(
    "my-connection-string",
    storageTableName: "mytable",
    propertyColumns: new[] { "CameraId" })
  .CreateLogger();

另外,正如您可能已经注意到的那样,我正在使用Serilog.Settings.Configuration,所以我希望您能告诉我如何将其添加到我的appsettings.json中。

谢谢

1 个答案:

答案 0 :(得分:0)

我弄清楚为什么我没有看到我的属性:我需要调用Enrich.FromLogContext()并且该属性显示在Azure表存储中。

我很努力地看到我们如何在propertyColumns(或者环境变量)中指定appsettings.json,但没有运气...... :(