2013-06-20 1 views
8

일반 winforms 응용 프로그램을 실행할 때 Console.WriteLine() 메서드는 어디에 쓰는지 궁금합니다.Console.WriteLine()은 릴리스시 무엇을 작성합니까?

디버깅 중에는 디버그 출력의 모든 텍스트가 행복하게 나옵니다. 그러나 더 이상 디버깅하지 않고 최종 사용자처럼 프로그램을 사용하면 모든 것이 어떻게됩니까? 어떤 종류의 캐시에 들어가나요? RAM의 깊이는? 라트비아 방학?

런타임 중에 액세스 할 수있는 항목에 쓰면 어떻게 든 사용자에게 표시하거나 모든 것을 텍스트 파일이나 다른 것으로 쓸 수 있습니까?

+0

라트비아가 옳은 대답이라고 생각합니다. 흥미로운 후속 질문 일 수 있습니다 : 실행중인 프로세스의 표준 출력에 첨부 할 수 있습니까 (로깅 목적)? –

답변

4

Console.WriteLine 또는 Debug.WriteLine에 대해 이야기하고 있습니까?

Console.WriteLine은 디버그 및 릴리스 구성에서 동일한 방식으로 작동합니다. 콘솔 애플리케이션과 같이 프로젝트를 구성하고 릴리스 모드로 시작하면 백그라운드에서 모든 출력을 볼 수있는 콘솔이 먼저 표시됩니다. This is a Winform Project configured to run as console project and writes "Hello World" in form load event

Debug.WriteLine에는 DEBUG가 정의되어 있지 않으면 조건문이 있습니다. 아무것도 쓰지 않습니다.

1

Console.WriteLine()은 디버그 또는 릴리스 모드로 표준 출력에 씁니다. 그래서 릴리스 모드에서 그것을 잡을 수있는 방법이 있습니다.

내가 기억한다면 Debug.WriteLine과 함께 대안이 릴리스에서 컴파일되지 않습니다.

1

귀하의 질문은 실제로 Console.WriteLine()을 (를) 캡처하려고합니다. 첫째, Console.WriteLine()은 콘솔 창을 연결하거나 스트림을 차단하는 다른 수단을 통해 읽을 수있는 표준 출력 스트림에 씁니다. 디버그 또는 로깅 정보를 캡처하려면

당신은 당신이 설치 수있는 파일로 출력을 보내, 그리고

System.Diagnostics.Trace.WriteLine

을 사용하고자하는 파일이나 뭔가를 할 수있는 TraceListener.

+1

그건 반드시 사실이 아닙니다. 하나는 콘솔 창을 사용할 필요없이 표준 출력에서 ​​읽을 수 있습니다. 예를 들어,'Process.Start'를 사용하여 실행하고 표준 입/출력에 액세스하는 실행 프로그램으로 읽을 수 있습니다. – Servy

+0

@Servy, OK, 나는 희망하는 바른 대답을 업데이트했습니다. –

관련 문제