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