【问题标题】:Create a new Windows Log on Event Viewer在事件查看器上创建新的 Windows 日志
【发布时间】:2025-12-14 06:15:01
【问题描述】:

我需要创建一个新的 Windows 日志。我的意思是:

我写了下面这行代码:

System.Diagnostics.EventLog.CreateEventSource("My Application Name", "My Custom Log");

看来这行代码实际上已经成功了,返回 TRUE

System.Diagnostics.EventLog.SourceExists("My Custom Log");

即使我尝试在该日志中写入,一切正常:

EventLog myLog = new EventLog();
myLog.Source = "My Custom Log";
myLog.WriteEntry("Writing to event log.");

但由于某种原因,我仍然看不到我的自定义日志...我还重新启动了电脑...怎么了?

谢谢

【问题讨论】:

  • myLog是如何初始化的?请出示代码。
  • 您可以在“Registri applicazioni e servizi”中找到您的“我的自定义日志”
  • 哦哦哦是的!!!为什么?我不想要它!
  • 您只能在那里创建新的事件源,而不能在“Registri di Windows”中创建

标签: c# logging event-viewer


【解决方案1】:

应用程序日志始终显示在应用程序和服务下 (Registri applicazioni e servizi)。

请注意,为了写入该位置,您需要在初始化记录器时正确指定源名称和日志名称:

var myLog = new EventLog(logName: "My Custom Log",
    machineName: ".", source: "My Application Name");

【讨论】:

    【解决方案2】:

    使用 EventLogTraceListener 类在您的 App.config 文件中创建一个监听器。

    > <system.diagnostics>   <trace autoflush="false" indentsize="4">
    >     <listeners>
    >       <add name="myListener"
    >         type="System.Diagnostics.EventLogTraceListener"
    >         initializeData="TraceListenerLog" />
    >     </listeners>   </trace> </system.diagnostics>
    

    然后回到你的主 Program.cs 文件并为 windows 日志创建一个简单的输出。

    using System.Diagnostics;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Trace.WriteLine("Test output");
            }
        }
    }
    

    运行应用程序并转到您的事件日志以检查是否已创建 Windows 日志。

    更多详情请查看此链接:https://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    【讨论】: