Fab*_*uez 7 logging .net-core asp.net-core asp.net-core-webapi
我正在尝试登录到 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;
}
Run Code Online (Sandbox Code Playgroud)
但我认为我在 Program.cs 中的 CreateWebHostBuilder() 方法中做错了,因为它不起作用:
我有这个:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)
我将其修改为:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddEventSourceLogger();
});
Run Code Online (Sandbox Code Playgroud)
但我一定是做错了什么......有什么想法吗?我在这里读到,显然 EVent Viewer 日志记录现在已融入 .Net Core 2.1 Write to EventLog in .Net Core
Tom*_*sek 12
对于使用 .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>();
Run Code Online (Sandbox Code Playgroud)
这在.NET Core Logging docs的底部注明。
更新:如果有人在 .NET Core 2.2 发布后仍然登陆这里,这仍然与.NET Core 3.1 日志相关。
好的,我必须将Microsoft.Extensions.Logging.EventLog添加到项目中(来自 Nuget)。
然后,在 Startup.cs 中:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddEventLog();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6684 次 |
| 最近记录: |