【问题标题】:How to write custom event ID to the Event Log using Serilog?如何使用 Serilog 将自定义事件 ID 写入事件日志?
【发布时间】:2020-02-27 20:36:33
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net-core serilog


    【解决方案1】:

    要自定义EventID,您必须实现自己的IEventIdProvidertell the sink 以使用您的提供程序而不是default one

    .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) // <#<#<#<#<#<#<#<#<#<#<#<#
    

    【讨论】:

    • 感谢您的快速回复。您在哪里指定事件编号?即4000?
    • 我承认我对 .NET 很陌生,你有我可以效仿的例子吗?
    • @MarcusT-M 上面我链接了默认事件提供者的实现:EventIdHashProvider.cs...只需替换Compute方法中的代码即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多