我正在尝试登录到托管在 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(使用前将#替换为@)