2017-12-08 18 views
0

NLog 사용 Nlog.config에서 minLevel을 변경할 수 있으므로 특정 로그 메시지를 제외 할 수 있습니다. 소프트웨어가 프로덕션 환경에서 실행될 때 이것이 일반적으로 훌륭하다고 생각합니다. 문제가 발생하면 minLevel을 전환하여 자세한 내용을 볼 수 있습니다. 이것은 의미가 있습니다.여러 로그 수준을 통한 디버깅 중 추가 로깅

"디버그"레벨을 디버깅하는 중 문제가있는 것은 솔직하게 조금 부적절한 것 같습니다. 이것은 대부분 "Debug"가 개발자가 관심을 가질 수있는 모든 것을 포착하고 다른 누구도 신경 쓰지 않기 때문입니다.

많은 것을하는 백엔드 시스템의 경우, 몇 초 만에 25MB의 로그 파일을 채우는 것을 보았습니다. 이것을 통해 정렬하고 조각을 함께 묶으 려하면 약간 어렵습니다.

로그 파일을 사용하여 실제로 만들 수있는 정보의 양을 제한 할 수 있도록 여러 수준의 "디버그"를 가질 수 있습니까?

답변

1

이 방법으로 문제가 해결 될 경우 없음 확인,

하지만 다음과 같은 패턴을 사용하는 NLog에서 흔한 일 : (LogManager.GetCurrentClassLogger() 또는 LogManager.GetLogger("loggernameForFlow1")을 사용하여) 각 클래스 또는 프로세스에 대한

  • 사용하는 다른 로거
  • 항상 로거에 모든 로그 메시지를 씁니다 (예 : logger.Trace(...), logger.Debug(...)
  • 수준별로 로그를 필터링 할뿐만 아니라 l 오거 이름. LogManager.GetCurrentClassLogger()은 현재 클래스 이름이 네임 스페이스 인 로거를 만들기 때문에 클래스별로 쉽게 필터링 할 수 있습니다. 예컨대 네임 스페이스에

    필터 :

    <logger name="myNamespace.*" minLevel=... writeTo=... /> 
    

    필터

    <logger name="myNamespace.MyClass.*" minLevel=... writeTo=... /> 
    
클래스 1