TraceLogging Yönetilen Hızlı Başlangıç
Aşağıdaki bölümde. .NET koduna TraceLogging eklemek için gereken temel adımlar açıklanmaktadır.
Önkoşullar
- .NET 4.6 veya üzeri.
SimpleTraceLoggingExample.cs
Bu örnekte, ayrı bir izleme bildirimi XML dosyasını el ile oluşturmaya gerek kalmadan TraceLogging olaylarının nasıl günlüğe kaydedilacağı gösterilmektedir.
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 oluşturma
Olayları günlüğe kaydedebilmeniz için önce EventSource sınıfının bir örneğini oluşturmanız gerekir. İlk oluşturucu parametresi bu sağlayıcının adını tanımlar. Sağlayıcı, örnekte gösterildiği gibi sizin için otomatik olarak kaydedilir.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
Uygulamanızda aynı anda yalnızca bir sağlayıcı örneği olması gerektiğinden örnek statiktir.
Log TraceLogging olayları
Sağlayıcı oluşturulduktan sonra, yukarıdaki örnekte yer alan aşağıdaki kod basit bir olayı günlüğe kaydeder.
log.Write("Event 1"); // write an event with no fields
Yapılandırılmış olay yükü verilerini günlüğe kaydetme
Olayla günlüğe kaydedilen yapılandırılmış yük verilerini tanımlayabilirsiniz. Yapılandırılmış yük verilerini anonim bir tür olarak veya aşağıdaki örnekte gösterildiği gibi [EventData]
özniteliğiyle ek açıklama eklenmiş bir sınıfın örneği olarak sağlayın.
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
aşağıda gösterildiği gibi tanımladığınız olay yükü sınıflarına [EventData]
özniteliğini eklemeniz gerekir.
[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; }
}
özniteliği, olay verilerini açıklamak için el ile bir bildirim dosyası oluşturma gereksiniminin yerini alır. Şimdi tek yapmanız gereken, olayı ve ilgili yük verilerini günlüğe kaydetmek için sınıfın bir örneğini EventSource.Write() yöntemine geçirmektir.
Özet ve sonraki adımlar
Windows Performans Araçları'nın (WPT) en son iç sürümlerini kullanarak TraceLogging verilerini yakalama ve görüntüleme hakkında bilgi için bkz. TraceLogging Olaylarını Kaydetme ve Görüntüleme.
Daha fazla yönetilen TraceLogging örneği için .NET TraceLogging Örnekleri bakın.