向Serilog添加自定义属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向Serilog添加自定义属性相关的知识,希望对你有一定的参考价值。

我在我的应用程序中将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列中?我想稍后在应用程序的日志查看器的详细信息视图中输出它。

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

答案

这很简单:

另一答案

您实际上可以通过几种不同的方式来执行此操作。就您而言,第一种方法可能是最好的:

以上是关于向Serilog添加自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

从 DOM 中读取 HTML 片段并向其中添加自定义数据

使用表达式自定义Serilog输出格式

向函数添加自定义属性

自定义对话框片段

如何通过Java代码向Word文档添加文档属性

向 RadDatePicker 添加自定义属性