Windows Server 2016StandardでホストされているASP .Net Core 2.1 WebAPIでイベントビューアーにログインしようとしています。
私はこれを私のコントローラーに持っています:
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();
});
しかし、私は何か間違ったことをしているに違いありません...何かアイデアはありますか?ここで、明らかにEVentViewerのログが.NetCore 2.1に組み込まれていることを読みました 。Net CoreのEventLogに書き込む
.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 Logging docs の下部に記載されています。
UPDATE:。NET Core 2.2の後で誰かがまだここに着陸した場合、これは 。NET Core 3.1ロギング に関連します。
OK、プロジェクトにMicrosoft.Extensions.Logging.EventLogを追加する必要がありました(Nugetから)。
次に、Startup.csで:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddEventLog();
}