Altbilgi içeriğine atla
.NET YARDıM

Serilog .NET (Geliştiriciler İçin Nasıl Çalışır)

Serilog Kaydedici Yapılandırması ve Yapılandırılmış Tanılama Günlük Davranışı Yapılandırması .NET Uygulaması İçin Giriş

.NET Core'da, etkin bir yapılandırılmış Serilog günlüğü yapılandırması, uygulama davranışını veya günlük olaylarını tanımlamak ve anlamak için çok önemlidir. Çeşitli günlük kitaplıkları arasında, Serilog güçlü yapılandırılmış günlük mesajı yetenekleri ile öne çıkar. Geleneksel günlüğe kıyasla, yapılandırılmış günlüğe, günlük düzeyindeki mesajları yapılandırılmış veri olarak biçimlendirir, bu da onları analiz etmeyi ve sorgulamayı kolaylaştırır. Bu makale, Serilog'un .NET 6 uygulamalarında günlüğe alma sürecini nasıl yükselttiğini ve her günlüğe alma olayının yalnızca bir dize değil, yapılandırılmış ve sorgulanabilir bir nesne haline gelmesini nasıl sağladığını inceler. Bu yaklaşım, günlük mesajlarını stratejik bir varlığa dönüştürür, daha etkili izleme ve analiz sağlar.

Serilog'un Özelliklerini Anlamak

Serilog, .NET uygulamaları için güçlü ve esnek bir günlük kitaplığıdır. Günlüğe alma deneyimini geliştiren ve uygulama davranışını teşhis etmeyi ve analiz etmeyi kolaylaştıran çeşitli özellikler sağlar. Bu bölümde Serilog'un sunduğu bazı önemli özellikleri ele alacağız.

Yapılandırılmış Günlük

Serilog'un öne çıkan özelliklerinden biri, yapılandırılmış günlüğü desteklemesidir. Serilog, mesajları düz metin olarak günlüğe almak yerine, yapılandırılmış veri olarak günlüğe almanıza olanak tanır. Bu yapılandırılmış veri, bir JSON nesnesi, bir sözlük veya serileştirilebilecek başka herhangi bir tür olabilir. Yapılandırılmış veri günlüğe alarak, Elasticsearch veya Splunk gibi araçlarla günlük olaylarını kolayca analiz edebilir ve sorgulayabilirsiniz.

Esnek Yapılandırma

Serilog, uygulamanızın ihtiyaçlarına göre günlük davranışını özelleştirmenize olanak tanıyan esnek yapılandırma seçenekleri sunar. Serilog'u programlı olarak veya yapılandırma dosyalarını kullanarak yapılandırabilirsiniz. Bu esneklik, uygulama yeniden başlatmaları gerektirmeden günlük davranışını çalışırken ayarlamanıza olanak tanır.

Sink Kitaplıkları

Serilog, günlük olaylarını farklı hedeflere göndermeye olanak tanıyan çeşitli sink kitaplıkları sağlar. Bazı popüler sink kitaplıkları şunlardır:

  • Serilog.Sinks.Console: Günlük olaylarını konsola gönderir.
  • Serilog.Sinks.File: Günlük olaylarını metin dosyalarına yazar.
  • Serilog.Sinks.Seq: Günlük olaylarını yapılandırılmış bir günlük sunucusu olan Seq'ye gönderir.
  • Serilog.Sinks.Elasticsearch: Günlük olaylarını Elasticsearch'e gönderir.

Bu sink kitaplıkları, Serilog'u farklı günlük altyapıları ve araçlarıyla entegre etmeyi kolaylaştırır.

Günlüğü Zenginleştirme

Günlüğü zenginleştirme, günlük olaylarınıza ek bağlamsal bilgi eklemenize olanak tanıyan bir özelliktir. Serilog, tarih-saat, işlem ID'si veya günlük seviyesi gibi bilgileri otomatik olarak günlük olaylarınıza ekleyebilen çeşitli zenginleştiriciler sunar. Ayrıca, uygulamanıza özgü bilgileri eklemek için özel zenginleştiriciler oluşturabilirsiniz.

Günlük Filtreleme

Serilog, çeşitli kriterlere göre günlük olaylarını filtrelemenize izin verir. Günlük seviyesine, özelliğe, veya başka bir duruma bağlı olarak günlük olaylarını hariç tutmak veya dahil etmek için filtreler yapılandırabilirsiniz. Bu filtreleme yeteneği, analiz veya sorun giderme için en önemli olan günlük olaylarına odaklanmanızı sağlar.

Bu özellikleri anlamak ve kullanmak, Serilog'u etkin bir şekilde kullanarak günlük yeteneklerinizi geliştirebilir ve uygulamanızın davranışına dair değerli bilgiler elde edebilirsiniz.

Yapılandırılmış Günlük: Temel Bir Özellik

Serilog'un ana gücü, günlük mesajlarını yapılandırılmış veriye dönüştürmekte yatar. Diğer günlük kitaplıkları düz metin çıktısı sağlarken, Serilog, log verilerini daha kolay analiz etmek ve sorgulamak için JSON formatında yapılandırılmış günlükler üretir. Bu yetenek, günümüz uygulamaları için, log analizi ve izleme işlem yeteneklerinin operasyonel zekanın ayrılmaz parçası olduğu yerlerde kritik öneme sahiptir. Yapılandırılmış günlükler, bir günlük mesajının ELK (Elasticsearch, Logstash, Kibana) yığını gibi sistemlere ileri düzey analiz için dahil edilmesi durumunda özellikle faydalıdır.

Zengin Günlük Olayı Detayları

Serilog, günlük olaylarını bağlamsal bilgilerle zenginleştirir, bir uygulama içinde neler olduğunu kapsamlı bir şekilde gösterir. Her günlük olayı, basit bir günlük mesajının ötesinde çok sayıda ayrıntı içerebilir; bunlar arasında zaman damgaları, günlük seviyeleri, hata detayları ve özel özellikler bulunur. Bu, Serilog'u, log derinliği ve netliği açısından diğer günlük kitaplıklarına kıyasla üstün kılar ve geliştiricilere uygulamanın davranışı ve performansı hakkında kritik bilgiler sunar.

ASP.NET Core'da Serilog Uygulamak

Serilog'u .NET 6 ASP.NET Core uygulamasına entegre etmek için, appsettings.json dosyası veya Serilog yapılandırma bölümünü kullanarak Serilog'u yapılandırarak başlayın. Bu yapılandırma, log verilerinin nasıl, nerede ve ne şekilde yakalanacağını belirler.

Yapılandırma Dosyasıyla

Günlük seviyelerini, çıktı noktalarını (örneğin günlük dosyaları veya konsol) ve günlük çıktısı formatını tanımlamak için yapılandırma JSON dosyasını kullanın. Yapılandırma dosyası yaklaşımı, kodu değiştirmeden günlük davranışını değiştirme esnekliği sunar. Bu, log çıktılarını bir konsol, bir dosya veya bulut tabanlı log yönetim hizmetleri gibi çeşitli hedeflere yönlendirmenize olanak tanıyan appsettings.json dosyasına ayarları belirleyerek yapılır.

Kod İçinde Programatik Olarak

Alternatif olarak, Serilog'u doğrudan kodda LoggerConfiguration sınıfını kullanarak yapılandırın. Bu yöntem genellikle daha karmaşık günlük senaryolarını, örneğin dinamik günlük seviyeleri veya özel günlük hedeflerini ayarlamak için kullanılır. Örneğin, belirli aralıklarla veya belirli bir boyuta ulaştığında yeni bir günlük dosyası oluşturan bir döner günlük dosyası yapılandırabilir, böylece etkili günlük dosyası yönetimi sağlanabilir.

// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();
// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();
' Create a logger instance with a rolling log file that creates a new log file every day
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()
$vbLabelText   $csharpLabel

ASP.NET Core ile Entegre Etme

Serilog'u ASP.NET Core ile entegre etmek, Package Manager Console aracılığıyla Serilog paketini eklemeyi ve logger'ı Program.cs dosyasında kurmayı içerir. .NET 6'da var builder ve var app ifadeleri, Serilog'un uygulamanın logging altyapısına sorunsuz şekilde bağlanmasını sağlar. Bu işlem, varsayılan günlüğü Serilog ile değiştirir ve tüm günlük mesajlarının Serilog boru hattı üzerinden işlenmesini sağlar.

var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));

var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));

var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)

' Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog(Function(ctx, lc) lc.WriteTo.Console().ReadFrom.Configuration(ctx.Configuration))

Dim app = builder.Build()
$vbLabelText   $csharpLabel

ASP.NET Core'da Serilog ile Iron Software Suite Entegrasyonu

Iron Software Suite, Serilog kullanarak bir .NET 6 uygulamasında günlüğe alma yeteneklerini önemli ölçüde artırabilen C# kitaplıklar koleksiyonu sunar. Bu suite, ASP.NET Core uygulamasına entegre edilebilecek ve günlüğe alma ve veri işleme yeteneklerini artırabilecek benzersiz işlevler sunan IronPDF, IronOCR, IronXL, IronZIP, IronQR, IronBarcode ve IronWebScraper gibi çeşitli araçları içerir.

ASP.NET Core uygulamasında Serilog ile Iron Software Suite'i entegre etmek için genel adımları izleyin:

  1. NuGet veya Paket Yöneticisi Konsolu kullanarak gerekli Iron Software Suite paketlerini yükleyin.
  2. İstenilen hedef kütüphaneleri kullanarak Serilog'u yapılandırın, örneğin log dosyaları için Serilog.Sinks.File veya konsol çıktısı için Serilog.Sinks.Console.
  3. İşlevlerinden yararlanmak ve günlüğe alma sürecini geliştirmek için uygulamanızın kodunda Iron Software Suite kütüphanelerini kullanın. Bu, PDF'ler oluşturmak, barkodları okumak veya web içeriğini kazıma gibi görevleri içerebilir.

Iron Software Suite'i Serilog ile entegre ederek, ASP.NET Core uygulamanızın günlüğe alma yeteneklerini genişletebilir ve bu kütüphanelerin sağladığı ek işlevlerden yararlanabilirsiniz.

IronPDF

IronPDF, .NET uygulamaları içinde PDF'lerin oluşturulmasını, okunmasını ve düzenlenmesini sağlar. Bu, günlük verilerinin PDF raporlarını oluşturmak için Serilog ile birleştirildiğinde özellikle yararlı olabilir, bu sayede günlük bilgilerinin standart bir formatta kolayca dağıtılması ve görüntülenmesi mümkün kılınır.

Serilog .NET (Geliştirici İçin Nasıl Çalışır): Şekil 1 - IronPDF

IronOCR

IronOCR, 125 dildeki metinleri resimlere çeviren bir Optik Karakter Tanıma (OCR) kütüphanesidir. Bu özellik, metin verilerinin görüntülerden veya taranmış belgelerden çıkarılması gereken günlük senaryolarında kullanılabilir ve böylece günlük verilere daha fazla bağlamsal bilgi kazandırılabilir.

Serilog .NET (Geliştirici İçin Nasıl Çalışır): Şekil 2 - IronOCR

IronXL

IronXL, Office Interop'a ihtiyaç duymadan Excel ile çalışma işlevselliği sağlar. Bu, günlük verilerinin analiz ve raporlama için Excel'e aktarılması gibi günlük amaçlar için özellikle faydalı olabilir ve veri manipülasyonu ve görselleştirme için tanıdık bir arayüz sunar.

Serilog .NET (Geliştirici İçin Nasıl Çalışır): Şekil 3 - IronXL

IronBarcode

IronBarcode, QR kodları ve barkodları okumayı ve yazmayı kolaylaştırır. Bu kütüphane, günlük dosyalarına kodlanmış bilgileri gömerek veya çıkararak kaydedilen bilgilerin güvenliği ve izlenebilirliğini artırır.

Serilog .NET (Geliştirici İçin Nasıl Çalışır): Şekil 4 - IronBarcode

Sonuç

ASP.NET Core uygulamalarında Serilog ile Iron Software Suite'i entegre etmek, sadece günlüğe alma sürecini zenginleştirmekle kalmaz, aynı zamanda günlük veri işlemeye ve sunmaya esneklik katarken bir katman ekler. İster PDF raporları oluşturma, ister görüntü tabanlı günlükleri işleme, Excel verilerini yönetme, günlük dosyası boyutlarını yönetme, günlük bilgilerini güvenli hale getirme veya web içeriklerini kazıma olsun, Serilog'un Iron Software Suite ile birleşimi, gelişmiş günlük ve veri işleme için .NET 6 ortamlarında sayısız olasılık açar.

Iron Software Suite, geliştiricilere özellikle Serilog ile entegrasyon yaparak gelişmiş günlük ve veri işleme işlevselliği için özelliklerini keşfetmeleri amacıyla mükemmel bir fırsat sunmaktadır. Iron Software C# Kütüphanelerinin ücretsiz deneme sürümüne göz atabilirsiniz.

Sıkça Sorulan Sorular

Serilog, .NET uygulamalarında kaydı nasıl iyileştirir?

Serilog, .NET uygulamalarında log olaylarını yapılandırılmış, sorgulanabilir nesnelere dönüştürerek teşhis ve analiz sürecini geleneksel düz metin kaydına kıyasla iyileştirir.

Serilog ile yapılandırılmış loglama kullanmanın avantajları nelerdir?

Serilog ile yapılandırılmış loglama, Elasticsearch gibi araçlarla analiz için log verilerinin daha kolay ayrıştırılmasını ve sorgulanmasını sağlar, operasyonel zeka ve izlemeyi artırır.

.NET 6 uygulamasında Serilog'u nasıl yapılandırabilirim?

.NET 6 uygulamasında, Serilog 'LoggerConfiguration' sınıfı veya 'appsettings.json' gibi yapılandırma dosyaları kullanılarak yapılandırılabilir, bu da kod değişikliği yapmadan loglama davranışının esnek ayarlanmasına olanak tanır.

Serilog farklı loglama hedeflerine entegrasyon seçenekleri sunuyor mu?

Serilog, log olaylarını konsol, metin dosyaları veya Elasticsearch veya Seq gibi sunuculara göndermeyi sağlayan çeşitli sink kütüphaneler sunar.

Serilog loglamada zenginleştiricilerin rolü nedir?

Serilog'daki zenginleştiriciler, zaman damgaları ve log seviyeleri gibi bağlamsal bilgileri log olaylarına ekler ve belirli uygulama verilerini içerecek özel zenginleştiriciler oluşturulabilir, logların bilgi değerini artırır.

Serilog diğer kütüphanelerle birlikte kullanılabilir mi?

Evet, Serilog, PDF oluşturma, OCR işleme ve Excel manipülasyonu gibi işlevler sunan IronPDF, IronOCR ve IronXL gibi kütüphanelerle birleştirilebilir, .NET uygulamalarındaki loglama sürecini ve veri yönetimini zenginleştirir.

.NET kullanarak log verilerinin PDF raporlarını nasıl oluşturabilirim?

IronPDF gibi kütüphaneler kullanarak .NET'te log verilerinin PDF raporlarını oluşturabilirsiniz; bu sayede log sistemleriyle entegre edilip detaylı log raporları üretebilirsiniz.

.NET'te analiz için log verilerini Excel'e aktarmak mümkün müdür?

Evet, IronXL gibi kütüphaneler kullanarak, Ofis Interop'a ihtiyaç duymadan Excel dosyalarını işleyebilir ve log verilerini .NET uygulamalarında daha detaylı analiz ve raporlama için Excel'e aktarabilirsiniz.

Iron Software kütüphaneleri, loglama sistemlerine (Serilog gibi) hangi faydaları sağlar?

Iron Software kütüphaneleri, loglama sistemlerini PDF oluşturma, OCR ve Excel dosya manipülasyonu gibi ek işlevlerle zenginleştirir, .NET ortamlarında veri işleme ve raporlama yeteneklerini artırır.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara