gpt4 book ai didi

asp.net - 通过 Serilog 将结构化数据记录到 Azure 存储表,将所有对象存储在 RenderedMessage 中,我想要类中每个字段的列

转载 作者:行者123 更新时间:2023-12-05 04:06:31 28 4
gpt4 key购买 nike

我编写了以下代码,使用 SeriLog 将带有对象的日志记录/存储到 Azure 表存储,但是我将对象存储在“RenderedMessage”列(在 azure 表中)或“数据”列中,而我需要存储类中的每个字段/属性到表存储中的单独列。请看下面:

 var _simpleTransation = new SimpleTransation(99, "some title9", "type99");

var logger = new LoggerConfiguration()
.WriteTo.AzureTableStorage(storage,LogEventLevel.Information,null, "LogStorage",false,null,null,null,false)
.Enrich.WithProperty("SimpleTransation", "@_simpleTransation", true)
.Enrich.FromLogContext()
.CreateLogger()
.ForContext<SimpleTransation>();

logger.Information<SimpleTransation>("{@SimpleTransation}", _simpleTransation);

enter image description here

所以我需要向 azure 存储表中添加代表我的对象字段的列,而不是在 RenderedMessage 日志中序列化我的整个对象?

最佳答案

So I need to add columns to azure storage table that represent my object fields and not serialize my whole object inside RenderedMessage log?

您可以在写入 Azure 表存储时使用 propertyColumns 属性添加新列。

注意:您需要调用 Enrich.FromLogContext() 并且该属性会显示在 Azure 表存储中。

这是一篇关于 Enrichment 的文章.可以通过多种方式使用属性丰富日志事件。

您需要使用LogContext.PushProperty 来添加您想要添加的属性和值。

你可以引用下面的代码试一试:

    static void Main(string[] args)
{
var storage = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

string tableName = "table411";
var exampleuser = new User { Id = 1, Name = "joey", Age = 23 };
var _log = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.AzureTableStorageWithProperties(storage, propertyColumns: new string[] { "UserId" });

LogContext.PushProperty("UserId", exampleuser.Id);

var logger = _log.CreateLogger();

logger.Information("{@User}",exampleuser);
}
class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

屏幕截图:

enter image description here

关于asp.net - 通过 Serilog 将结构化数据记录到 Azure 存储表,将所有对象存储在 RenderedMessage 中,我想要类中每个字段的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49802904/

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