C# 为什么EventLog会将信息写入其他日志(MyNewLog而不是MyApp)?

C# 为什么EventLog会将信息写入其他日志(MyNewLog而不是MyApp)?,c#,.net-core,C#,.net Core,C、 .NET Core 3.1,Windows 10 x64 我想通过C使用Windows事件查看器。例如,我想将记录写入日志。我使用Microsoft手册中的代码: using System.Diagnostics; // NuGet: System.Diagnostics.EventLog namespace ConsoleAppThreading { class Program { static void Main(string[] args) {

C、 .NET Core 3.1,Windows 10 x64

我想通过C使用Windows事件查看器。例如,我想将记录写入日志。我使用Microsoft手册中的代码:

using System.Diagnostics; // NuGet: System.Diagnostics.EventLog

namespace ConsoleAppThreading {
    class Program {

        static void Main(string[] args) {
            var source = "MySource";
            var logName = "MyNewLog";
            if (!EventLog.SourceExists(source)) {
                EventLog.CreateEventSource(source, logName);
                return;
            }
            EventLog myLog = new EventLog();
            myLog.Source = source;
            myLog.WriteEntry("Writing to event log.");
        }
    }
}
我运行了两次这个代码。它工作得很好:

但如果我更改源和日志名值,则会出现意外行为:

using System.Diagnostics; // NuGet: System.Diagnostics.EventLog

namespace ConsoleAppThreading {
    class Program {

        static void Main(string[] args) {
            var source = "Bushman"; // Changed
            var logName = "MyApp"; // Changed
            if (!EventLog.SourceExists(source)) {
                EventLog.CreateEventSource(source, logName);
                return;
            }
            EventLog myLog = new EventLog();
            myLog.Source = source;
            myLog.WriteEntry("Writing to event log 3."); // Changed
        }
    }
}
这个代码我也运行了两次。结果是:


日志记录被写入其他日志MyNewLog而不是MyApp。为什么会发生这种情况?

在测试时,您是否在任何时候使用“Bushman”源代码和“MyNewLog”日志名运行代码

如果是这样,您可能需要根据文档重新启动。如果源已映射到日志并重新映射到新日志,则必须重新启动计算机才能使更改生效


核心文档链接

返回什么;是否?@mjwills退出应用程序。您是否在测试时随时使用Bushman源代码和MyNewLog日志名运行代码?如果是这样,您可能需要根据文档重新启动。如果源已映射到日志并重新映射到新日志,则必须重新启动计算机才能使更改生效。就在页面底部和核心3.1链接上,它说了同样的话。