У меня есть веб-API do tnet core 3.1, опубликованный в IIS с неуправляемым пулом приложений на компьютере Windows 10 Enterprise x64.
Я пытаюсь настроить провайдера EventLog следующим образом ...
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddEventLog(new EventLogSettings { LogName = "Web API ABC"
}
... но в окне просмотра событий ничего не появляется, когда я logger.LogInformation("can you see me?");
Здесь указаны appsettings.json
, program.cs
и Controller
appsettings. json
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Debug",
"Microsoft.Hosting.Lifetime": "Debug"
}
},
"EventLog": {
"LogLevel": {
"Default": "Debug"
}
}
}
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
logging.AddEventLog(new Microsoft.Extensions.Logging.EventLog.EventLogSettings { LogName = "Web API ABC" });
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
Контроллер:
[ApiController]
[Route("[controller]")]
public class MyGreatController : ControllerBase
{
private IConfiguration config;
private readonly ILogger<MyGreatController> logger;
public MyGreatController(IConfiguration _config, ILogger<MyGreatController> _logger)
{
config = _config;
logger = _logger;
}
[HttpGet]
[Route("hello")]
public string HelloWorld()
{
logger.LogInformation("can you see me?");
return "hello world";
}
}