c# - Serilog 在事件序列化时省略基类属性

标签 c# serilog

我正在使用 Serilog 序列化事件,这些事件可以从广泛的服务发送,这些服务扩展了包含任何事件的基本信息的基本抽象类,并且子类添加了所有需要的特定事件信息。

问题在于日志中仅存储子类属性,而忽略了父类属性。有没有办法强制 serilog 在其序列化中包含基类属性?

我尝试将基类更改为非抽象类,并将 Destructor.ToMaximumLength 设置为 10000,但仍然没有成功。

public abstract class AnalyticsEvent
{
    public readonly Guid EventId = Guid.NewGuid();
    public readonly DateTimeOffset EventTime = DateTimeOffset.UtcNow;
    public readonly EventGroups EventGroup;
    public readonly Guid? TransactionId;
    public readonly string EventName;

    public AnalyticsEvent(EventGroups eventGroup, Guid? transactionId, string eventName)
    {
        EventGroup = eventGroup;
        TransactionId = transactionId;
        EventName = eventName;
    }
}

最佳答案

Serilog 的解构仅获取属性;基类的成员是字段。将它们转换为属性应该按预期工作。

关于c# - Serilog 在事件序列化时省略基类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978919/

相关文章:

c# - 检测,ScrollViewer的ScrollBar是否可见

c# - 在 winforms 中创建可点击的 C# 图像映射

c# - 如何使用鼠标滚轮在 WPF 中水平滚动?

c# - 单元测试自定义 Serilog 接收器

asp.net-core - Serilog 控制台接收器输出换行符为\r\n

c# - 带有Kibana的ElasticSearch云上的Serilog接收器未收到消息

c# - 如何使用 C# 使用 Selenium 将所有元素放入列表或字符串中?

c# - 如何将存储在隔离存储中的图像用于 Storyboard 动画?

c# - 如何使用带有 Serilog 的 postsharp 来分离日志记录方面?

.net - 使用 serilog 记录 json