다음을 통해 공유


방법: 응용 프로그램 코드에 추적 문 추가

업데이트: 2007년 11월

추적에 가장 흔히 사용되는 메서드는 Write, WriteIf, WriteLine, WriteLineIf, AssertFail과 같이 수신기에 출력을 쓰기 위한 메서드입니다. 이러한 메서드는 두 분류로 나눌 수 있습니다. Write, WriteLineFail 메서드는 모두 무조건적으로 출력을 내보내는 반면 WriteIf, WriteLineIfAssertBoolean 조건을 테스트한 다음 조건의 값에 따라 쓰거나 쓰지 않습니다. WriteIfWriteLineIf는 조건이 true일 경우 출력을 내보내고 Assert는 조건이 false일 경우 출력을 내보냅니다.

추적 및 디버깅 전략을 구상할 때는 출력 모양을 고려해야 합니다. 관련 없는 정보로 채워진 다수의 Write 문을 사용하면 읽기 어려운 로그가 만들어집니다. 반면에 WriteLine을 사용하여 상호 관련 있는 문을 분리된 줄에 배치하면 어떤 정보가 서로 연결되어 있는지 구분하기가 어렵습니다. 일반적으로 여러 소스의 정보를 결합하여 단일 정보 메시지를 만들 경우에는 다수의 Write 문을 사용하고 완전한 단일 메시지를 만들려는 경우에는 WriteLine 문을 사용합니다.

완전한 줄을 쓰려면

  • WriteLine 또는 WriteLineIf 메서드를 호출합니다.

    이 메서드가 반환하는 메시지 끝에는 캐리지 리턴이 추가되므로 Write, WriteIf, WriteLine 또는 WriteLineIf가 반환하는 다음 메시지는 그 다음 줄에서 시작됩니다.

    Dim errorFlag As Boolean = False
    Trace.WriteLine("Error in AppendData procedure.")
    Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.") 
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteLine("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    

부분적인 줄을 쓰려면

  • Write 또는 WriteIf 메서드를 호출합니다.

    Write, WriteIf, WriteLine 또는 WriteLineIf가 출력하는 다음 메시지가 Write 또는 WriteIf 문이 출력하는 메시지와 같은 줄에서 시작됩니다.

    Dim errorFlag As Boolean = False
    Trace.WriteIf(errorFlag, "Error in AppendData procedure.")
    Debug.WriteIf(errorFlag, "Transaction abandoned.")
    Trace.Write("Invalid value for data request")
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, 
       "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
    Trace.Write("Invalid value for data request");
    
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
          System.Diagnostics.Trace.Write("Invalid value for data request");
    

메서드 실행 전후에 특정 조건이 있는지 확인하려면

  • Assert 메서드를 호출합니다.

    Dim I As Integer = 4
    Trace.Assert(I = 5, "I is not equal to 5.")
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    참고:

    추적과 디버깅 모두에서 Assert를 사용할 수 있습니다. 이 예제에서는 호출 스택을 Listeners 컬렉션의 모든 수신기로 출력합니다. 자세한 내용은 관리 코드에 어설션 사용Debug.Assert를 참조하십시오.

참고 항목

작업

방법: 추적 스위치 구성

개념

계측 및 추적 소개

추적 스위치

추적 수신기

참조

Debug.WriteIf

Debug.WriteLineIf

Trace.WriteIf

Trace.WriteLineIf

기타 리소스

응용 프로그램 추적 및 조율