【发布时间】:2018-05-26 03:56:44
【问题描述】:
我有一个使用 .NET Framework ASP.NET Core 2.0 的项目,并希望实现对 Windows 事件日志的日志记录,就像我读到的 here
添加日志提供者
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddEventSourceLogger();
logging.AddConsole();
})
.UseStartup<Startup>()
.Build();
}
控制器
[Route("api/[controller]")]
public class ShortCodeController : Controller
{
private readonly ILogger _logger;
public ShortCodeController(ILogger<ShortCodeController> logger)
{
_logger = logger;
_logger.LogInformation("INIT");
}
[HttpGet("{letters}/{digits}/{length}")]
public string Get(bool letters, bool digits, int length)
{
_logger.LogError("TEST");
return "value";
}
}
它适用于控制台,我看到了我的日志消息。但我无法使用事件查看器在事件日志中找到该消息。为什么?
【问题讨论】:
-
您使用
logging.AddEventSourceLogger()而不是logging.AddEventLog()(如docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/…中的建议)是否有原因? -
.ConfigureLogging((hostingContext, logging) =>在 dotnet core 3.1 中是.ConfigureLogging((logging) =>docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/…
标签: c# asp.net asp.net-web-api logging asp.net-core