【问题标题】:Logs not going to CustomEventLog created in a WindowsService日志不会转到在 Windows 服务中创建的自定义事件日志
【发布时间】:2015-09-07 04:29:55
【问题描述】:

我创建了一个 Windows 服务,我正在使用 installutil 安装它。在项目安装程序中,我正在创建一个自定义事件日志。但是当我的服务启动时,我的所有日​​志都将转到“应用程序”而不是我的自定义日志。以下是我添加到安装程序的代码。

// Create Event Source and Event Log     
EventLogInstaller logInstaller = new EventLogInstaller();
logInstaller.Source = "MyServices";
logInstaller.Log = "MyService Events";

Installers.Add(logInstaller);

此外,服务的名称是 MyService.exe。

当我卸载并重新安装服务时,安装失败并显示以下安装日志;

运行事务安装。

开始安装的安装阶段。看内容 D:\MyService\MyService\bin\Release\MyService.exe 的日志文件 大会的进展。该文件位于 D:\MyService\MyService\bin\Release\MyService.InstallLog.

安装阶段发生异常。 System.ArgumentException:源 MyServices 已存在于 本地计算机。

安装的回滚阶段即将开始。查看内容 的日志文件 D:\MyService\MyService\bin\Release\MyService.exe 程序集的进度。 该文件位于 D:\MyService\MyService\bin\Release\MyService.InstallLog.

回滚阶段成功完成。

事务安装已完成。

这就是我写日志条目的方式;

EventLog.WriteEntry("MyServices", logMessage, logType);

有人可以帮我解决我做错了什么吗?

【问题讨论】:

    标签: c# .net windows-services installutil custom-eventlog


    【解决方案1】:

    当您添加新的日志源时,您必须重新启动服务器才能正确找到日志源。

    您还需要您的安装程序知道日志源是否已经存在。

    因此,在添加之前添加对日志源的快速检查,并在第一次安装后重新启动服务器以使日志源正常工作。

    【讨论】:

    • 如何在安装程序中检查日志源不存在?
    • 使用 EventLog.SourceExists(sourceName)
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多