2014-08-29 3 views
0

콘솔에서 디버그 추적 메시지를 로깅하는 것에 대한 매우 기본적인 C# 질문이 있습니다. 콘솔에 추적 메시지를 리디렉션하려면콘솔에 디버그 메시지를 로깅하는 중 #

Trace.Listeners.Add(new ConsoleTraceListener()); 

디버그 메시지를 콘솔에 기록 할 때와 비슷한 것이 예상됩니다.

//Debug.Listeners.Add(new ConsoleDebugListener()); //does not exist 
    Debug.Listeners.Add(new ConsoleTraceListener()); 

그래서 이름이 달라지지 않거나 뭔가 누락되었습니다.

난 그냥 알고 싶어

편집하면 뭔가 ConsoleDebugListener 또는 뭔가 비슷한 존재 여부를 있다. 그것은 트레이스 리스너와 함께 작동합니다.

+0

나를 위해 작동합니다. 당신은 확실히 콘솔 앱의 디버그 빌드를 실행하고 있습니까? –

+0

나는 그것이 작동하는 것을 안다 ... 왜 질문은, 왜 비슷한 것이 디버그 리스트너를 위해 존재하지 않는지에 관한 것이다. – harishr

답변

1

ConsoleTraceListener은 오는 메시지를 작성하는 방법을 처리하는 클래스입니다. Trace이 포함되어 있어도 System.Diagnostics 네임 스페이스에있는 Trace 클래스의 독점 출력 메서드는 아닙니다. 당신이 그들 모두 다음에 포함 된 청취자에게 메시지를 전송하는, 내부적으로 TraceInternal 클래스를 사용하기 때문에 DebugTrace 모두를위한 ConsoleTraceListener 작품, 그것은 왜 정말 찾으려면

. 어쩌면 초기 청취자가 *Trace*라는 한 수에 대한 충분한 이유 (EventLogTraceListener, XmlWriterTraceListener는 등 ...)

둘은 TraceInternal 속성을 반환하기 때문에 흥미롭게도, 청취자가 DebugTrace간에 공유됩니다

.

+0

위대한입니다. 고마워. 나는별로 흥미롭지 않았다. 무언가가 작동하지만 약간의 변덕 스러움이 있다면 이유를 찾아야합니다. 자세한 답변을 주셔서 감사합니다. – harishr

관련 문제