gpt4 book ai didi

c# - 向 Serilog 添加自定义属性

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

我在应用程序中将 Serilog 与 MS SQL Server 接收器一起使用。假设我已经定义了以下类...

public class Person
{
  public string FirstName { get; set; }
  public string LastName { get; set; }

  public DateTime BirthDate { get; set; }
  // ... more properties
}

...并创建了一个实例:

var person = new Person
{
FirstName = "John",
LastName = "Doe",
BirthDate = DateTime.UtcNow.AddYears(-25)
};

我在代码中放置了以下日志调用:

Log.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);

是否还可以记录 BirthDate 属性而不将其添加到消息模板,以便将其呈现在 Properties XML 列中?我想稍后在应用程序日志查看器的详细信息 View 中输出它。

我基本上正在寻找类似于对象解构的行为,但不将平面对象打印为日志消息的一部分。

最佳答案

这很简单:

Log.ForContext("BirthDate", person.BirthDate)
.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);

关于c# - 向 Serilog 添加自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27888715/

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