2017-12-12 8 views
1

私はASP.NETコアのEventLogプロバイダ

ログプロバイダーを追加here

を読むように私は、.NET FrameworkのASP.NETコア2.0を使用してプロジェクトを持っているし、Windowsイベントログへのロギングを実装したい

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"; 
     } 
    } 

これはコンソールで動作し、ログメッセージが表示されます。しかし、私はイベントビューアを使ってイベントログにそのメッセージを見つけることができません。どうして?

+1

HTTPSで提案されているように、あなたが( ')'ではなくlogging.AddEventLog 'よりlogging.AddEventSourceLoggerを()'(使用している理由があります:// docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?tabs=aspnetcore2x#eventlog)? – mjwills

答えて

1
logging.AddEventSourceLogger() 

Event Tracingです。 については

、あなたが使用したい:

logging.AddEventLog() 
+0

この特定の質問と回答に関連する種類です。とにかく、私はこれをPackage Manager Consoleの "Install-Package Microsoft.Extensions.Logging.EventLog -Version 2.0.0"から実行しました。 – JsonStatham

+0

答えのhttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?tabs=aspnetcore2x#eventlogリンクには、必要なNuGetパッケージへのリンクがあります。 – mjwills

関連する問題