문제

내 코드에 인쇄문을 뿌려서 내가 어디에 있는지 보여주고 중요한 값을 콘솔 창에 인쇄하고 싶습니다.

어떻게해야합니까? 그런 다음 릴리스 버전에서 끄는 방법은 무엇입니까?

도움이 되었습니까?

해결책

모든 전화 System.Diagnostics.Debug.Print() 릴리스 버전으로 전환하면 제거됩니다.

다른 팁

사용 log4net 릴리스에서 디버그 레벨에서 로깅 및 생산에서 경고 또는 오류 수준.

이점은 개발 중에 재현 할 수없는 문제가있는 경우 릴리스 환경에서 다시 로그인 할 수 있다는 것입니다.

편집] fwiw, 나는 내가 많은 이제 테스트 중심 개발을 사용하므로 디버그 로깅이 적습니다. 내 로깅의 대부분은 경고/오류 다양성입니다.

System.diagnostics.debug 및 System.Diagnostics.Trace 클래스를 참조하십시오.

디버깅 및 추적은 관련이 있지만 뚜렷한 활동입니다. 그만큼 System.Diagnostics 네임 스페이스는 둘 다 지원합니다.

사용 Debug.Write/WriteLine 로그 파일에 디버깅 메시지를 작성합니다. (및 출력 창에.) 사용 Debug.Assert, 글쎄, 거의 모든 곳에서. 당신이 작성한 모든 코드 Debug 코드에서 디버그 기호를 정의하지 않으면 클래스가 불만 사항 전에 제거됩니다. 이는 디버그 및 릴리스 구성 옵션에서 기본적으로 수행됩니다.

사용 Trace.Write/WriteLine 추적 메시지를 작성합니다. 이러한 방법은 기능적으로 디버그 클래스의 방법과 동일합니다. 차이점은 코드에서 추적 기호를 정의하지 않으면 제거된다는 것입니다.

디버그 및 트레이스 클래스는 또한 다른 클래스의 약간 인기가 많은 인프라를 가지고 있습니다. TextWriterTraceListener, 이는 응용 프로그램 구성 파일을 편집하여 디스크의 로컬 파일에서 웹 서비스로 웹 서비스로 추적 로그의 출력을 변경하는 것과 같은 으스스한 작업을 수행 할 수 있습니다. 내가 가장 좋아하는 트릭은 a를 구현하는 것입니다 TextWriter 그것은 a에 텍스트를 쓸 수 있습니다 TextBox, 모든 디버그 및 추적 출력을 UI로 리디렉션하는 데 사용하십시오.

앱 구성 파일에서 플래그를 설정할 수도 있습니다. WriteIf 그리고 WriteLineIf 방법은 존중하지만 내 경험상 그것들은 꽤 다루기 힘들어집니다.

일반적으로, 나는 내 자신의 정적 클래스를 만들면 더 행복합니다. Trace 행동 양식. 이를 통해 UI에서 추적 켜기 및 끄기와 같은 일을 할 수 있습니다. Trace 수업.

마지막으로 : 모든 방법이 시작되고 끝나면 추적과 같은 작업을 수행하도록 앱을 도구 해야하는 경우, 사용하는 도구는 기적적인 PostSharp입니다.

나는 사용한다: system.console.writeline ()

#if DEBUG
  System.Console.WriteLine("Message");
#endif 

측면 지향 프로그래밍 솔루션을 살펴볼 수도 있습니다. 그들은 이런 종류의 일을 정말 잘합니다. PostSharp를 좋은 구현으로보십시오. 그들의 샘플 코드에는 일반적으로 원하는 것의 예가 포함되어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top