다음을 통해 공유


추적 로깅 관리 빠른 시작

다음 섹션에서는 .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 예제를 참조하세요.