如何将事件记录到 ASP.NET Core Web API 中的事件查看器?

2024-01-11

我正在尝试登录到托管在 Windows Server 2016 Standard 上的 ASP.NET Core 2.1 Web API 中的事件查看器。

我的控制器中有这个:

private readonly ILogger<MyController> _logger;
private readonly MyContext _context;

public TestController(MyContext context, ILogger<MyController> logger)
{
    _context = context;
    _logger = logger;
}

但我认为我在 Program.cs 中的 CreateWebHostBuilder() 方法中做错了什么,因为它不起作用:

我有这个:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();

我将其修改为:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                logging.AddEventSourceLogger();
            });

但我一定做错了什么......有什么想法吗?我在这里读到显然 EVent Viewer 日志记录现已融入 .Net Core 2.1写入.Net Core中的EventLog https://stackoverflow.com/questions/39131217/write-to-eventlog-in-net-core


对于任何使用 .NET Core 2.2 偶然发现此问题的人,事件日志记录器(来自Microsoft.Extensions.Logging.EventLog)现在应该添加到Program.cs:

public static void Main(string[] args)
{
    CreateWebHostBuilder(args).Build().Run();
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((context, logging) =>
        {
            logging.AddEventLog();
        })
        .UseStartup<Startup>();

这在底部注明.NET Core 日志记录文档 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-2.1#windows-eventlog-provider.

UPDATE:万一有人在 .NET Core 2.2 之后仍然登陆这里,这仍然与.NET Core 3.1 日志记录 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#windows-eventlog-provider.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将事件记录到 ASP.NET Core Web API 中的事件查看器? 的相关文章

随机推荐