development

.NET BCL의 추적 대 디버그

big-blog 2020. 12. 25. 22:44
반응형

.NET BCL의 추적 대 디버그


그것은

디버그 사용이 릴리스 구성에서 컴파일 된다는 주목할만한 예외를 제외하면 거의 동일 합니다.

하나만 사용하고 다른 하나는 언제 사용 하시겠습니까? 이것에 대한 유일한 대답 은 디버그 구성에서만 볼 수있는 출력을 생성 하기 위해 Debug 클래스를 사용 하고 Trace 는 릴리스 구성에 남아 있지만 실제로 질문에 대한 대답은 아닙니다. 내 머리.

당신이 악기 코드에려고하는 경우에, 당신은 왜 지금까지 사용하는 것이 디버그를 하기 때문에, 추적은 재 컴파일없이 해제 할 수 있습니까?


주요 차이점은 표시하는 것입니다. 디버그는 릴리스에 포함되지 않지만 Trace는 포함됩니다.

내가 이해하는대로 의도 된 차이점은 개발 팀은 Debug를 사용하여 제품 소비자에게 너무 상세하거나 공개 할 수있는 풍부하고 설명적인 메시지를 내보낼 수있는 반면 Trace는 다음과 같은 종류의 보다 구체적으로 응용 프로그램을 구성하는 메시지입니다.

마지막 질문에 답하기 위해 Debug를 사용하여 릴리스하려는 코드를 계측하는 이유를 생각할 수 없습니다.

도움이 되었기를 바랍니다.


디버그는 순수한 디버깅 목적으로 사용됩니다. 디버그 실행 (디버그 모드)에서 풍부한 메시지를 내 보냅니다.

Trace는 애플리케이션 디버깅, 버그 수정 및 프로파일 링 (출시 후)에 도움이됩니다.

Debug 클래스는 릴리스 모드에서 사용되지 않습니다.


trace와 debug의 유일한 차이점은 trace 문이 릴리스 빌드로 컴파일 될 때 프로그램에 기본적으로 포함되지만 debug 문은 포함되지 않는다는 것입니다.

따라서 디버그 클래스는 주로 개발 단계에서 디버깅에 사용되는 반면 추적은 애플리케이션이 컴파일 및 릴리스 된 후 테스트 및 최적화에 사용될 수 있습니다 .


성능에 매우 민감한 코드 블록의 경우 Trace를 컴파일 된 상태로 두지 만 비활성화하면 성능이 달라질 수 있습니다.


그 기능이 훨씬 더 유연하고 강력하기 때문에 추적을 위해 log4net을 사용하는 방법을 살펴 보겠습니다.

그러나 나 외에 다른 사람이나 내부 테스터가 보지 않도록 의도 한 진정한 디버그 메시지의 경우 아마도 Debug를 고수 할 것입니다.


당신은 당신 자신의 질문에 대답했습니다. 디버그 메시지가 그대로 있으면 사람들이 볼 수 있습니다. 예를 들어 다음을 수행한다고 가정 해 보겠습니다.

Debug.WriteLine ( "사용자 이름으로 DB에 연결 : blah 및 PW : pass");

당신의 코드를 디 컴파일하는 사람은 누구나 그것을 볼 수 있습니다. 그러나 이는 테스트 중에 알아야 할 매우 중요한 것일 수 있습니다.

추적이 다릅니다. Trace를 수행하려면 log4net을 사용합니다.


이것은 Trace와 Debug의 완전한 차이점입니다. Debug와 Trace 모두 System.Diagnostics 네임 스페이스를 사용합니다.

디버그

  • Debug 클래스를 사용합니다.
  • 디버그 빌드에서 사용합니다.
  • 응용 프로그램 개발 시간을 사용합니다.
  • 디버그 모드에서 컴파일러는 실행 파일 내에 일부 디버깅 코드를 삽입합니다.
  • 디버그 클래스는 디버그 모드에서만 작동합니다.
  • 디버그를 사용하여 성능 분석을 수행 할 수 없습니다.
  • 디버깅은 프로그램에서 오류를 찾는 데 사용됩니다.
  • Debug의 경우 Debug.Write () 메서드를 사용할 수 있습니다.
  • 디버그는 기본 프로그램 실행과 동일한 스레드에서 실행됩니다.

자취

  • Trace 클래스를 사용합니다.
  • Trace 문은 프로그램이 릴리스 된 빌드로 컴파일 될 때 기본적으로 포함됩니다.
  • Trace 클래스는 애플리케이션이 컴파일 및 릴리스 된 후에도 테스트 및 최적화에 사용됩니다.
  • Trace 클래스는 디버그 모드와 릴리스 모드 모두에서 작동합니다.
  • 트레이스는 메인 프로그램 실행 스레드에서 다른 스레드로 실행됩니다.
  • Trace의 경우 Trace.Write () 메서드를 사용할 수 있습니다.
  • 응용 프로그램 배포 시간을 사용합니다.

참고 : csharp corner

참조 URL : https://stackoverflow.com/questions/179868/trace-vs-debug-in-net-bcl

반응형