2008-10-17 3 views
1

webforms 환경에서 볼 수있는 trace 문을 작성하는 방법을 알고 있지만 Windows Forms 응용 프로그램에서는 어떻게합니까?Windows 양식 앱에 추적 정보 작성하기

정적 메서드 내부에 생성하는 SQL 쿼리를 표시하고 싶습니다.

messagebox.show에 액세스 할 수 없습니다. 내 옵션은 무엇입니까?

+0

항상 다른 사람을 볼 수있어서 기쁩니다. 얼마나 시간을 절약해라! – DOK

답변

0

당신은 글로벌 로그 객체를 사용할 수 있습니다

enum LogLevel 
{ 
    Info, 
    Warning, 
    Error 
} 

delegate void OnLog (string msg, LogLevel level); 

interface ILogger 
{ 
    void Log(string msg, LogLevel level); 
    event OnLog; 
} 

는 그런 다음 프로그램 클래스의 공용 정적 메소드를 사용하여 확보 하 클래스와 ILogger입니다을 확장합니다.

기본 폼에서 자신을 OnLog 이벤트에 첨부하고 forLog 이벤트에서 메시지를 인쇄 할 때 사용합니다. 그런 다음 SQL 쿼리를 사용하여 정적 메서드에서 Log 메서드를 호출하면됩니다.

:

1

양식에 표시해야합니까? 그렇지 않다면, 쿼리를 Trace.WriteLine()하고 DebugView을 사용하여 확인할 수 있습니다. 도움이되지 않으면 더 많은 정보가 필요하다고 생각합니다.

1

System.Diagnostics.Trace 클래스는 추적 수신기에 쓸 수 있습니다.

기본 수신기는 디버깅 할 때 출력 창에 씁니다. 응용 프로그램 구성 파일에서 추적 출력을 파일, 이벤트 로그 등으로 리디렉션 할 수있는 다른 리스너를 지정할 수 있습니다.

또는 Log4Net과 같은 로깅 프레임 워크를 사용하십시오.

5

가장 간단한 방법은 System.Diagnostics.Debug.WriteLine 또는 System.Diagnostics.Trace.WriteLine입니다. 디버거가 연결되어 있으면 메시지가 출력 창에 표시되고, 그렇지 않으면 DebugView을 실행하여 메시지를 봅니다 (노이즈를 제외시키기 위해 일부를 필터링해야 함).

2

Log4Net을 사용할 수 있습니다.

Log4Net이 완전히 XML을 구성 구동하고 확장 의 매우 높은 수준을 제공한다 (다만, 새의 Appender를 구현 또는 레이아웃 필터).

+0

예 .. 절대적으로 : http://www.tigraine.at/2008/10/13/log4net-logging-made-easy/ – Tigraine