추적 로깅 관리 빠른 시작
다음 섹션에서는 .NET 코드에 TraceLogging을 추가하는 데 필요한 기본 단계를 설명합니다.
사전 요구 사항
- .NET 4.6 이상.
SimpleTraceLoggingExample.cs
이 예제에서는 별도의 계측 매니페스트 XML 파일을 수동으로 만들 필요 없이 TraceLogging 이벤트를 기록하는 방법을 보여 줍니다.
using System;
using System.Diagnostics.Tracing;
namespace SimpleTraceLoggingExample
{
class Program
{
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
static void Main(string[] args)
{
log.Write("Event 1"); // write an event with no fields
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
}
}
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
}
EventSource 만들기
이벤트를 기록하려면 EventSource 클래스의 instance 만들어야 합니다. 첫 번째 생성자 매개 변수는 이 공급자의 이름을 식별합니다. 공급자는 예제에 설명된 대로 자동으로 등록됩니다.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
애플리케이션에 특정 공급자의 instance 한 번에 하나만 있어야 하므로 instance 정적입니다.
Log TraceLogging 이벤트
공급자를 만든 후 위의 예제에서 다음 코드는 간단한 이벤트를 기록합니다.
log.Write("Event 1"); // write an event with no fields
구조적 이벤트 페이로드 데이터 로그
이벤트로 기록되는 구조적 페이로드 데이터를 정의할 수 있습니다. 다음 예제와 같이 특성으로 주석을 추가한 클래스의 instance 또는 익명 형식으로 [EventData]
구조화된 페이로드 데이터를 제공합니다.
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
아래와 같이 정의한 이벤트 페이로드 클래스에 특성을 추가 [EventData]
해야 합니다.
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
특성은 이벤트 데이터를 설명하는 매니페스트 파일을 수동으로 만들어야 하는 필요성을 대체합니다. 이제 클래스의 instance EventSource.Write() 메서드에 전달하여 이벤트 및 해당 페이로드 데이터를 기록하기만 하면 됩니다.
요약 및 다음 단계
WPT(Windows Performance Tools)의 최신 내부 버전을 사용하여 TraceLogging 데이터를 캡처하고 보는 방법에 대한 자세한 내용은 TraceLogging 이벤트 기록 및 표시 를 참조하세요.
더 관리되는 TraceLogging 예제는 .NET TraceLogging 예제를 참조하세요.