I follow this document Logging in .NET Core and ASP.NET Core, try to write log to Windows EventLog.
first, I create Source and Log in Windows Event Log:
if (!EventLog.SourceExists("MyTestSource"))
{
EventLog.CreateEventSource("MyTestSource", "MyTestLog");
return;
}
and it's created.
then, I configured logging in CreateHostBuilder from Program.cs of my ASP.NET Core app (core 3.0):
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddEventLog(new EventLogSettings
{
SourceName = "MyTestSource",
LogName = "MyTestLog"
});
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
I think that's all. Then I use logger in my controller:
[Route("[controller]")]
[ApiController]
public class ServerController : ControllerBase
{
ILogger<ServerController> _logger = null;
public ServerController(ILogger<ServerController> logger)
{
_logger = logger;
}
[HttpGet("GetServerInfo")]
public string GetServerInfo()
{
_logger.LogInformation("GetServerInfo Called");
return "Hello I'm Server";
}
}
but there's nothing in MyTestLog in Windows EventLog. Is there anything I missed?