Trace 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
코드의 실행을 추적하는 데 도움이 되는 메서드와 속성 집합을 제공합니다. 이 클래스는 상속될 수 없습니다.
public ref class Trace sealed
public sealed class Trace
type Trace = class
Public NotInheritable Class Trace
- 상속
-
Trace
예제
다음 예제에서는 를 사용하여 Trace 프로그램 실행의 시작과 끝을 나타냅니다. 또한 이 예제에서는 및 Trace.Unindent 메서드를 사용하여 Trace.Indent 추적 출력을 구분합니다. 보다 완전 한 예제 사용에 대 한 Trace를 참조 하세요 방법: 애플리케이션 코드에 Trace 문 추가합니다.
// Specify /DTRACE when compiling.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
int main()
{
#if defined(TRACE)
Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
Trace::AutoFlush = true;
Trace::Indent();
Trace::WriteLine( "Entering Main" );
#endif
Console::WriteLine( "Hello World." );
#if defined(TRACE)
Trace::WriteLine( "Exiting Main" );
Trace::Unindent();
#endif
return 0;
}
// Specify /d:TRACE when compiling.
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
Trace.AutoFlush = true;
Trace.Indent();
Trace.WriteLine("Entering Main");
Console.WriteLine("Hello World.");
Trace.WriteLine("Exiting Main");
Trace.Unindent();
}
}
' Specify /d:TRACE=True when compiling.
Imports System.Diagnostics
Class Test
Shared Sub Main()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
Trace.AutoFlush = True
Trace.Indent()
Trace.WriteLine("Entering Main")
Console.WriteLine("Hello World.")
Trace.WriteLine("Exiting Main")
Trace.Unindent()
End Sub
End Class
설명
클래스의 속성 및 메서드를 Trace 사용하여 릴리스 빌드를 계측할 수 있습니다. 계측을 사용 하면 실제 설정에서 실행 중인 애플리케이션의 상태를 모니터링할 수 있습니다. 추적을 사용하면 실행 중인 시스템을 방해하지 않고 문제를 격리하고 해결할 수 있습니다.
이 클래스는 대화 상자를 표시하고 항상 Fail로 Assert 표시되는 어설션을 내보내는 메서드를 제공합니다. 이 클래스는 다음과 같은 변형으로 쓰기 메서드를 제공합니다.
및 TraceSwitch 클래스는 BooleanSwitch 추적 출력을 동적으로 제어하는 수단을 제공합니다. .NET Framework 앱에서는 애플리케이션을 다시 컴파일하지 않고 이러한 스위치의 값을 수정할 수 있습니다. 구성 파일을 사용하여 .NET Framework 앱에서 스위치를 설정하는 방법에 대한 자세한 내용은 클래스 및 방법: Create, 초기화 및 추적 스위치 구성을 참조 Switch 하세요.
인스턴스를 컬렉션에 추가 TraceListener 하거나 컬렉션에서 Listeners 인스턴스를 제거하여 추적 출력의 대상을 사용자 지정할 수 있습니다. 컬렉션은 Listeners 및 Trace 클래스 모두에서 Debug 공유됩니다. 두 클래스에 추적 수신기를 추가하면 수신기가 둘 다에 추가됩니다. 기본적으로 추적 출력은 클래스를 사용하여 내보내집니다 DefaultTraceListener .
참고
추적 수신기 Listeners 에서 사용하는 리소스를 사용할 수 없는 경우 추적 수신기를 컬렉션에 추가하면 추적하는 동안 예외가 throw될 수 있습니다. throw된 조건 및 예외는 추적 수신기에 따라 달라지며 이 항목에서 열거할 수 없습니다. 추적 수신기의 예외를 감지하고 처리하기 위해 Trace 메서드를 블록에 try
/catch
호출하는 것이 유용할 수 있습니다.
참고
부분적으로 신뢰할 수 있는 코드에 추적 수신기를 추가하는 경우 추적 수신기를 SecurityException 추가하려면 권한이 필요하므로 예외가 발생합니다 UnmanagedCode . Visual Studio의 샌드박스에서 실행되는 부분적으로 신뢰할 수 있는 코드를 추적하려면 추적 수신기를 추가하지 마세요. 대신 출력 창에서 Trace 및 Debug 메시지를 봅니다.
클래스는 Trace 및 의 Indent 수준을 얻거나 설정하는 속성과 IndentSize각 쓰기 후에 를 설정할 AutoFlush 지 여부를 제공합니다.
.NET Framework 앱에서는 애플리케이션 이름에 AutoFlush 해당하는 구성 파일을 편집하여 및 TraceIndentSize 를 설정할 수 있습니다. 다음 예제와 같이 구성 파일의 형식은 해야 합니다.
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="3" />
</system.diagnostics>
</configuration>
특성은 ConditionalAttribute 의 Trace메서드에 적용됩니다. 를 조건부 컴파일 기호로 정의하지 않는 한 TRACE
이러한 메서드에 대한 호출을 지원하는 ConditionalAttribute 컴파일러가 무시됩니다. 가 지원되는지 여부 ConditionalAttribute 와 조건부 컴파일 기호를 정의하기 위한 구문을 확인하려면 컴파일러의 설명서를 참조하세요.
참고
Visual Studio 프로젝트에서 기본적으로 DEBUG
조건부 컴파일 기호는 디버그 빌드에 대해 정의되며 디버그 및 TRACE
릴리스 빌드 모두에 대해 기호가 정의됩니다.
C#에서 조건부 컴파일 기호를 정의 TRACE
하려면 명령줄을 사용하여 코드를 컴파일할 때 컴파일러 명령줄에 옵션을 추가 /d:TRACE
하거나 파일 맨 위에 를 추가 #define TRACE
합니다. Visual Basic에서 컴파일러 명령줄에 옵션을 추가 /d:TRACE=True
하거나 파일에 추가 #Const TRACE=True
합니다.
ConditionalAttribute 는 C++ 컴파일러에서 지원되지 않습니다. 동등한 기능을 제공하려면 블록의 #if defined(TRACE) ... #endif
메서드 Trace 에 대한 호출을 묶고 컴파일러 명령줄에 옵션을 추가 /DTRACE
하거나 파일에 추가 #define TRACE
해야 합니다.
속성
AutoFlush | |
CorrelationManager |
이 추적에 대한 스레드의 상관 관계 관리자를 가져옵니다. |
IndentLevel |
들여쓰기 수준을 가져오거나 설정합니다. |
IndentSize |
들여쓰기의 공백 수를 가져오거나 설정합니다. |
Listeners |
추적 출력을 모니터링하는 수신기의 컬렉션을 가져옵니다. |
UseGlobalLock |
전역 잠금을 사용해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
메서드
Assert(Boolean) |
조건을 확인합니다. 조건이 |
Assert(Boolean, String) |
조건을 확인합니다. 조건이 |
Assert(Boolean, String, String) |
조건을 확인합니다. 조건이 |
Close() |
출력 버퍼를 플러시하고 Listeners를 닫습니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
Fail(String) |
지정된 오류 메시지를 내보냅니다. |
Fail(String, String) |
오류 메시지와 자세한 오류 메시지를 내보냅니다. |
Flush() |
출력 버퍼를 플러시하고 버퍼링된 데이터가 Listeners에 작성되도록 합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
Indent() |
현재 IndentLevel 이 1씩 증가합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
Refresh() |
추적 구성 데이터를 새로 고칩니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
TraceError(String) |
지정된 메시지를 사용하여 Listeners 컬렉션의 추적 수신기에 오류 메시지를 씁니다. |
TraceError(String, Object[]) |
지정된 개체 배열과 형식 지정 정보를 사용하여 Listeners 컬렉션의 추적 수신기에 오류 메시지를 씁니다. |
TraceInformation(String) |
지정된 메시지를 사용하여 Listeners 컬렉션의 추적 수신기에 알림 메시지를 씁니다. |
TraceInformation(String, Object[]) |
지정된 개체 배열과 형식 지정 정보를 사용하여 Listeners 컬렉션의 추적 수신기에 정보 메시지를 씁니다. |
TraceWarning(String) |
지정된 메시지를 사용하여 Listeners 컬렉션의 추적 수신기에 경고 메시지를 씁니다. |
TraceWarning(String, Object[]) |
지정된 개체 배열과 형식 지정 정보를 사용하여 Listeners 컬렉션의 추적 수신기에 경고 메시지를 씁니다. |
Unindent() |
현재 IndentLevel 을 1씩 줄입니다. |
Write(Object) |
ToString() 컬렉션의 추적 수신기에 개체의 Listeners 메서드 값을 씁니다. |
Write(Object, String) |
ToString() 컬렉션의 추적 수신기에 범주 이름 및 개체의 Listeners 메서드 값을 씁니다. |
Write(String) |
Listeners 컬렉션의 추적 수신기에 메시지를 씁니다. |
Write(String, String) |
Listeners 컬렉션의 추적 수신기에 범주 이름 및 메시지를 씁니다. |
WriteIf(Boolean, Object) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 개체의 |
WriteIf(Boolean, Object, String) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 범주 이름 및 개체의 |
WriteIf(Boolean, String) |
조건이 |
WriteIf(Boolean, String, String) |
조건이 Listeners 이면 |
WriteLine(Object) |
ToString() 컬렉션의 추적 수신기에 개체의 Listeners 메서드 값을 씁니다. |
WriteLine(Object, String) |
ToString() 컬렉션의 추적 수신기에 범주 이름 및 개체의 Listeners 메서드 값을 씁니다. |
WriteLine(String) |
Listeners 컬렉션의 추적 수신기에 메시지를 씁니다. |
WriteLine(String, String) |
Listeners 컬렉션의 추적 수신기에 범주 이름 및 메시지를 씁니다. |
WriteLineIf(Boolean, Object) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 개체의 |
WriteLineIf(Boolean, Object, String) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 범주 이름 및 개체의 |
WriteLineIf(Boolean, String) |
조건이 |
WriteLineIf(Boolean, String, String) |
조건이 Listeners 이면 |
이벤트
Refreshing |
구성에서 을 TraceSource 새로 고쳐야 할 때 발생합니다. |
적용 대상
스레드 보안
이 형식은 스레드로부터 안전합니다.
추가 정보
.NET