2017-12-12 22 views
1

내가 ASP.NET 핵심은 EventLog 제공

로그 공급자를 추가 here

을 읽을처럼 나는, .NET 프레임 워크 ASP.NET 코어 2.0을 사용하여 프로젝트를 가지고 있고, 윈도우 이벤트 로그에 로깅을 구현하려는

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

이 특정 질문 및 답변과 관련된 종류입니다. 어쨌든, 나는 패키지 관리자 콘솔 "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