首页 > 解决方案 > 如何使用 Serilog 将自定义事件 ID 写入事件日志?

问题描述

使用 Serilog 将事件记录到 Windows 事件日志很容易,但是同一个接收器似乎不提供使用日志写入自定义事件 ID 的能力。因此,如果我们决定为我们的应用程序使用事件 ID 4000,我们如何配置 Serilog 以将该事件 ID 连同源、描述等一起写入事件日志?

标签: c#asp.net-coreserilog

解决方案


要自定义EventID,您必须实现自己的IEventIdProvider告诉接收器使用您的提供程序而不是默认提供程序。

.WriteTo(..., eventIdProvider: yourProvider)

    public static LoggerConfiguration EventLog(
        this LoggerSinkConfiguration loggerConfiguration,
        string source,
        string logName = null,
        string machineName = ".",
        bool manageEventSource = false,
        string outputTemplate = DefaultOutputTemplate,
        IFormatProvider formatProvider = null,
        LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
        IEventIdProvider eventIdProvider = null) // <#<#<#<#<#<#<#<#<#<#<#<#

推荐阅读