2009-08-21 5 views
1

콘솔에 대한 모든 함수 호출을 로깅하고 버그가있는 경우의 차이점을 찾기 위해 클래스 디버깅을 시작하는 경우가 자주 발생합니다. 그런 추적을 가능하게하기 위해 클래스에 적용 할 수있는 속성이 있습니까? 이들콘솔에 모든 함수 호출을 기록하십시오.

Console.WriteLine("classname: methodname") 

모든 방법과 이후를 제거하는 입력 할 필요가 꽤 피곤입니다 (조건부 컴파일하여 수행 할 수 있습니다 제거하는,하지만 당신이 모든 여분이있을 때 코드를보고 매우 좋은하지 않습니다)

답변

5

누군가 나를 언급 한 부가 기능 도구를 사용하여 속성을 사용했습니다. 내가 그것을 찾을 수 있는지 보자.

나는 그것이 PostSharp 생각 :

Article

http://www.postsharp.org/

0

을 설정, log4j에만큼 좋은 경우 소프트웨어 엔지니어링의 시대는 흔히 프로파일 링 도구를 사용하여 프로파일 링 도구를 사용하여 이 기능은 디버깅에 매우 어색한 접근법이라고 할 수 있지만, 필자는이 기능을 사용할 때 최전선이 아닌 절망적 인 움직임을 보였습니다. print 서술문에 의한 디버깅은 상당히 느리고 비효율적입니다.

+0

도 지원합니다. 프로그램 흐름에 대한 정보를 제공합니다. 효과는 문제에 달려 있습니다. – Etan

3

PostSharp을 사용하여 모든 메서드 호출을 가로 채고 모든 인수를 사용하여 인쇄 할 수 있으며 소스 코드를 변경할 필요가 없습니다. 이 CodeProject article은 PostSharp로 로깅을 수행하는 방법을 보여줍니다.

참고로, PostSharp는 aspect-oriented programming (AOP) 프레임 워크이며 더 자세한 내용이 있습니다.

관련 문제