You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET下如何将日志写入Windows事件查看器自定义应用通道?

解决方案:将Serilog日志写入Windows「应用程序和服务日志」自定义通道

问题说明

当前使用Serilog将日志写入Windows事件查看器时,日志默认被归类到「Windows日志/应用程序」中,需要将日志转移到「应用程序和服务日志」下的自定义日志通道(目标位置为该分类下的独立自定义日志节点)。未使用Azure服务,仅基于IIS部署应用。现有配置代码如下:

Log.Logger = new LoggerConfiguration().MinimumLevel.Debug()
                      .WriteTo.EventLog("Laserfiche_Document_Finder", 
                       manageEventSource: true).CreateLogger();

builder.Host.UseSerilog();

appsettings.json配置片段:

"Serilog": {
    "using": [ "Serilog.Sinks.EventLog" ],
    "MinimumLevel": {
      "Default": "Information"
    },
    "WriteTo": [
      {
        "Name": "EventLog",
        "Args": {
          "source": "DLF",
          "manageEventSource": true
        }
      }
    ]
}

实现步骤

1. 创建自定义事件日志通道(需管理员权限)

通过Windows命令提示符(管理员模式)执行以下命令,创建自定义日志及关联的事件源:

wevtutil sl "Laserfiche Document Finder" /c:Application /e:true
wevtutil al "Laserfiche Document Finder" /s:"DLF"
  • 第一条命令创建名为Laserfiche Document Finder的自定义日志,类别设为应用程序类(对应「应用程序和服务日志」)
  • 第二条命令将事件源DLF关联到该自定义日志

2. 修改Serilog配置,指定自定义日志名

Serilog的EventLog Sink默认使用Application日志,需显式指定logName参数指向刚创建的自定义日志:

代码配置修改:

Log.Logger = new LoggerConfiguration().MinimumLevel.Debug()
                      .WriteTo.EventLog(
                          source: "DLF",
                          logName: "Laserfiche Document Finder",
                          manageEventSource: false) // 已手动创建事件源,设为false避免冲突
                      .CreateLogger();

builder.Host.UseSerilog();

appsettings.json配置修改:

"Serilog": {
    "using": [ "Serilog.Sinks.EventLog" ],
    "MinimumLevel": {
      "Default": "Information"
    },
    "WriteTo": [
      {
        "Name": "EventLog",
        "Args": {
          "source": "DLF",
          "logName": "Laserfiche Document Finder",
          "manageEventSource": false
        }
      }
    ]
}

3. 配置IIS应用池权限

确保IIS应用池的运行账户(默认是ApplicationPoolIdentity)拥有写入自定义事件日志的权限:

  • 打开「事件查看器」,右键刚创建的自定义日志 → 「属性」→ 「安全」
  • 添加应用池账户(格式为IIS AppPool\<你的应用池名称>),授予「写入」权限

验证

重启IIS应用池后,触发日志写入操作,即可在「应用程序和服务日志」下找到自定义的Laserfiche Document Finder日志节点,日志将直接写入该通道。

内容的提问来源于stack exchange,提问作者It's Just a Printer Driver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:20:18