2016-12-26 6 views
5

우리는 NLog 또는 Serilog를 사용하여 로깅을 수행합니다. ASP.NET에서 ASP.NET Core (has logging built in) 시스템을 포팅하는 중입니다.ASP.NET 코어의 기본 로깅 기능으로 NLog/Serilog/etc가 더 이상 사용되지 않습니까?

이상적으로는 NLog를 삭제하고 싶습니다. 더 이상 필요하지 않은 것으로 보입니다.

그러나 NLog와 동일한 로깅 기능이 내장되어 있습니까? 주요 기능이 누락 되었습니까? NLog (또는 Serilog 등의 유사 물)를 계속 사용하는 것이 중요합니까?

답변

4

asp.net 로깅은 공용 (로깅) 인터페이스 및 로그 구현입니다.

인프라가 준비되어 있으므로 공용 인터페이스와 타사 라이브러리 (예 : NLog)를 함께 사용할 수 있습니다.

당신은 내장 구현을 로그인 당신은 승리를 통해 NLog을 경우

  • (다시 시작하지 않고 응용 프로그램을 실행하는 동안) 온 - 더 - 플라이
  • 이상의 대상을 구성을 변경 (예를 들어, 데이터베이스, 파일). 내장 된 파일 대상이 없습니다 : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging. NLog의 메일 대상은 아직 표준에 없지만 계획되어 있습니다. 우리는 성능 optimalization에서의 많은 투자로 ${processid}
  • 같은 추가 컨텍스트 정보를 작성하는 목표에
  • 더 많은 옵션 (예를 들어, 파일 아카이빙)는
  • , 나는 성능을 기대.
  • 비동기 로깅 - 내가 아는 한 asp.net 로깅에 없습니다. 하나 개의 파일 등 동시를 쓰는 상황에 맞는 정보와 로그, 필터 조건을 제한 &을 fallbacking 버퍼링 같은
  • 고급 기능,
  • NLog은 (목표뿐만 아니라 레이아웃 렌더러, 레이아웃 등뿐만 아니라)
  • 을 확장하는 것이 더 쉽습니다
  • 구조적 로깅 가능성 (Serilog, NLog 4.5)

항상 그렇듯이 이러한 기능이 필요하지 않다면 라이브러리 (라이브러리)가 더 많을 것입니다.

+0

NLog 또는 ASP.NET 코어에서 비동기 로깅이 누락 되었습니까? – grokky

+0

Aspnet 코어. 다시 말하면 다음과 같습니다. – Julian

+0

"변경없이 구성을 변경하는 중 (다시 시작하지 않고 응용 프로그램을 실행하는 중)"-> 일부 ASP.NET 코어의 로거도이 기능을 지원합니다! 그러나 NLog는 확실히 전반적으로 더 멋진 방법입니다! – Eilon

5

ASP.NET 코어의 로깅 API로 인해 NLog와 다른 공급자가 쓸모 없게되었습니다. ASP.NET Core가 제공하는 것은 좋은 추상화이므로 로깅 프레임 워크는 로깅에 의존하는 코드를 변경하지 않고도 전환 할 수 있습니다.

Nlog는 여전히 ASP.NET 코어 로깅 API에 구현되지 않은 유용한 configuration features을 제공합니다.

+0

예 XML 파일을 통한 NLog의 설정이 유용합니다. ASP.NET 코어 구성 프레임 워크에서 쉽게 수행 할 수 있습니다. NLog를 유지할 충분한 이유가 있는지 궁금합니다. – grokky

+0

그럼 전적으로 당신이 요구 사항에 따라 달라질 것 같아요. ASP.NET 로깅 API 만 있으면 충분합니다. 콘솔뿐만 아니라 텍스트 파일에 기록하려면 일부 로깅 제공 업체를 사용해야합니다. Serilog는 로그를 텍스트 파일로 전달하는 간단한 구성을 가지고 있습니다. – Andrius

+0

[디스크에 기록하지 않습니다] (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#built-in-logging-providers)를 인식하지 못했습니다. 이것은 중요한 기능이 아닙니다! – grokky