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

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

.NET Uygulamasında Serilog Logger Yapılandırmasına ve Yapılandırılmış Tanılama Kayıt Davranışı Yapılandırmasına Giriş

.NET Core'da, uygulama davranışını veya günlük olaylarını teşhis etmek ve anlamak için verimli bir yapılandırılmış Serilog günlük kaydı yapılandırması son derece önemlidir. Çeşitli kayıt kütüphaneleri arasında, Serilog güçlü yapılandırılmış kayıt mesajı yetenekleriyle öne çıkar. Geleneksel günlüklemenin aksine, yapılandırılmış günlükleme, log seviyesi mesajlarını 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ükleme sürecini nasıl yükselttiğini ve her günlük olayının yalnızca bir dize değil, yapılandırılmış ve sorgulanabilir bir nesne olmasını sağladığını araştırmaktadır. Bu yaklaşım, günlük mesajlarını stratejik bir varlığa dönüştürerek daha etkili izleme ve analiz yapmayı mümkün kılar.

Serilog'un Özelliklerini Anlamak

Serilog, .NET uygulamaları için güçlü ve esnek bir loglama kütüphanesidir. Gelişmiş bir kayıt deneyimi sunar ve uygulama davranışını teşhis etmeyi ve analiz etmeyi kolaylaştıran çeşitli özellikler sağlar. Bu bölüm, Serilog tarafından sunulan bazı temel özellikleri keşfedecek.

Yapılandırılmış Kayıt

Serilog'un öne çıkan özelliklerinden biri, yapısal günlükleme desteğidir. Serilog, basitçe mesajları düz metin olarak kaydetmek yerine, yapılandırılmış verileri kaydetmenize olanak tanır. Bu yapılandırılmış veri bir JSON nesnesi, bir sözlük veya serileştirilebilen herhangi bir tür olabilir. Yapılandırılmış verileri kaydederek, Elasticsearch veya Splunk gibi araçları kullanarak 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ükleme davranışını özelleştirmenizi sağlayan esnek yapılandırma seçenekleri sunar. Serilog'u programla veya yapılandırma dosyaları kullanarak yapılandırabilirsiniz. Bu esneklik, uygulama yeniden başlatmalarına gerek kalmadan çalışma zamanında günlük kaydı davranışını ayarlamanıza olanak tanır.

Sink Kütüphaneleri

Serilog, log olaylarını farklı hedeflere göndermenizi sağlayan çeşitli sink kütüphaneleri sunar. Popüler sink kütüphanelerinden bazıları ş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: Seq'ye, yapılandırılmış bir günlük sunucusuna, günlük olaylarını gönderir.
  • Serilog.Sinks.Elasticsearch: Log etkinliklerini Elasticsearch'e gönderir.

Bu sink kütüphaneleri, Serilog'u farklı loglama altyapısı ve araçlarıyla entegre etmeyi kolaylaştırır.

Günlük Zenginleştirme

Günlük zenginleştirme, günlük olaylarınıza ek bağlamsal bilgi eklemenize olanak tanıyan bir özelliktir. Serilog, log olaylarınıza zaman damgası, thread ID'si veya log seviyesi gibi bilgileri otomatik olarak ekleyebilen çeşitli zenginleştiriciler sağlar. Uygulamaya özel bilgileri eklemek için özel zenginleştiriciler de oluşturabilirsiniz.

Log Filtreleme

Serilog, çeşitli kriterlere göre günlük olaylarını filtrelemenize olanak tanır. Günlük olaylarını günlük seviyesi, özellik değerleri veya başka herhangi bir koşula göre hariç tutmak veya dahil etmek için filtreler yapılandırabilirsiniz. Bu filtreleme yeteneği, analiziniz veya sorun giderme işlemleriniz için en ilgili olan günlük olaylarına odaklanmanıza olanak tanır.

Bu özellikleri anlayarak ve kullanarak, Serilog'un gücünden yararlanabilir, günlükleme yeteneklerinizi geliştirebilir ve uygulamanızın davranışları hakkında değerli içgörüler elde edebilirsiniz.

Yapılandırılmış Kayıt: Temel Bir Özellik

Serilog'un başlıca gücü, günlük mesajlarını yapılandırılmış verilere dönüştürmesinde yatar. Diğer günlükleme kütüphanelerinin düz metin çıktısı vermesinin aksine, Serilog, günlük verilerini ayrıştırmayı ve sorgulamayı basitleştirerek yapılandırılmış JSON formatında günlükler oluşturur. Günümüz uygulamaları için bu yetenek, operasyonel zekanın bir parçası olarak log analizi ve izleme açısından kritik öneme sahiptir. Yapılandırılmış günlükler, gelişmiş analiz için ELK (Elasticsearch, Logstash, Kibana) yığını gibi sistemlere bir günlük mesajı alındığında özellikle faydalıdır.

Zengin Log Olay Detayları

Serilog, günlük olaylarını bağlamsal bilgilerle zenginleştirir ve bir uygulamanın içindeki olayların kapsamlı bir görünümünü sunar. Her günlük olayı, basit bir günlük mesajının ötesinde, zaman damgaları, günlük seviyeleri, istisna detayları ve özel özellikler dahil birçok detay içerebilir. Bu, Serilog'u logun derinliği ve netliği açısından diğer log kütüphanelerinden üstün kılar, geliştiricilere uygulamanın davranışı ve performansı hakkında kritik içgörüler sunar.

ASP.NET Core'da Serilog Uygulamak

Serilog'u bir .NET 6 ASP.NET Core uygulamasına entegre etmek için, Serilog'u appsettings.json dosyası veya Serilog yapılandırma bölümü aracılığıyla yapılandırarak başlayın. Bu yapılandırma, günlüğe kaydedilen verilerin nasıl, nerede ve ne şekilde yakalanacağını belirler.

Yapılandırma Dosyası ile

Günlük seviyelerini, çıktı hedeflerini (örneğin, günlük dosyaları veya konsol) ve günlük çıktı 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ükleme davranışını değiştirme esnekliği sunar. Bu işlem, appsettings.json dosyasındaki ayarları belirterek yapılır ve günlük çıktınızı bir konsol, bir dosya veya hatta bulut tabanlı günlük yönetim hizmetleri gibi çeşitli çıkışlara yönlendirmenizi sağlar.

Kodda Programatik Olarak

Alternatif olarak, LoggerConfiguration sınıfını kullanarak Serilog'u doğrudan kodda yapılandırın. Bu yöntem, dinamik log seviyesi veya özel log hedefleri gibi daha karmaşık log senaryolarını yapılandırmak için sıklıkla kullanılır. Örneğin, belirli aralıklarla veya belirli bir boyuta ulaşıldığında yeni bir günlük dosyası oluşturan bir döner günlük dosyasını yapılandırarak, günlük dosyası yönetimini verimli bir şekilde sağlayabilirsiniz.

// 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 Entegrasyon

Serilog'u ASP.NET Core ile entegre etmek, Serilog paketini Paket Yöneticisi Konsolu aracılığıyla eklemek ve Program.cs dosyasında günlüğü ayarlamak ile ilgilidir. .NET 6'daki var builder ve var app ifadeleri, Serilog'u uygulamanın günlük kaydı altyapısına sorunsuz bir şekilde entegre eder. Bu işlem, varsayılan logger'ı Serilog ile değiştirir ve tüm günlük mesajlarının Serilog 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 Iron Software Suite'i Serilog ile Entegre Etme

Iron Software Suite, Serilog kullanarak .NET 6 uygulamasında günlükleme yeteneklerini önemli ölçüde artırabilecek bir C# kütüphaneleri koleksiyonu sunar. Bu suite, ASP.NET Core uygulamasının kayıt ve veri işleme yeteneklerini artırmak için entegre edilebilen çeşitli araçlar sunar: IronPDF, IronOCR, IronXL, IronZIP, IronQR, IronBarcode ve IronWebScraper, her biri benzersiz işlevsellikler sunar.

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

Gerekli Iron Software Suite paketlerini NuGet veya Paket Yöneticisi Konsolu kullanarak yükleyin.

  1. Serilog'u, log dosyaları için Serilog.Sinks.File veya konsol çıktısı için Serilog.Sinks.Console gibi istenen sink kütüphanelerini kullanarak yapılandırın.
  2. Uygulamanızın kodunda Iron Software Suite kütüphanelerini kullanarak fonksiyonlarından yararlanın ve günlükleme sürecini geliştirin. Bu, PDF oluşturma, barkod okuma 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ükleme yeteneklerini genişletebilir ve bu kütüphanelerin sunduğu ek işlevselliklerden faydalanabilirsiniz.

IronPDF

IronPDF, .NET uygulamaları içinde PDF dosyalarının oluşturulmasına, okunmasına ve düzenlenmesine olanak tanır. Bu, özellikle log verilerinin PDF raporlarını oluşturmak ve log bilgilerini standart bir formatta kolayca dağıtmak ve görüntülemek için Serilog ile birleştirildiğinde oldukça faydalı olabilir.

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

IronOCR

IronOCR, görüntüleri 125 dilde metne çevirebilen bir Optik Karakter Tanıma (OCR) kütüphanesidir. Bu özellik, metin verilerinin görüntülerden veya taranmış belgelerden çıkarılması gerektiği kayıt senaryolarında kullanılabilir, böylece log verileri daha fazla bağlamsal bilgi ile zenginleştirilir.

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

IronXL

IronXL, Office Interop gerekmeden Excel ile çalışma işlevselliği sağlar. Bu, özellikle log verilerinin Excel'e aktarılıp daha fazla analiz ve raporlama için kullanılabileceği için kayıt amaçları için faydalı olabilir, 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ı okuma ve yazmayı kolaylaştırır. Bu kütüphane, günlük dosyaları içinde kodlanmış bilgileri gömebilir veya çıkarabilir, kaydedilen bilgilerin güvenliğini ve izlenebilirliğini artırır.

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

Sonuç

ASP.NET Core uygulamalarında Iron Software Suite'i Serilog ile entegre etmek, yalnızca günlük işleme sürecini zenginleştirmekle kalmaz, aynı zamanda günlük verilerini işleme, sunma ve analiz etme konusunda bir esneklik katmanı ekler. İster PDF raporları oluşturmak, ister görüntü tabanlı logları işlemek, Excel verilerini yönetmek, log dosya boyutlarını kontrol etmek, log bilgilerini güvenceye almak veya web içeriğini kazımak olsun, Serilog ile Iron Software Suite'in birleşimi, .NET 6 ortamlarında gelişmiş loglama ve veri işleme için sayısız olasılığı beraberinde getirir.

Iron Software Suite, Iron Software'ın C# Kütüphanelerinin ücretsiz denemesini sunar ve geliştiricilere, özellikle gelişmiş kayıt tutma ve veri işleme işlevselliği için Serilog ile entegre edildiğinde, ASP.NET Core uygulamalarını geliştirmede özelliklerini ve yeteneklerini keşfetmek için mükemmel bir fırsat sağlar.

Sıkça Sorulan Sorular

.NET uygulamalarında Serilog günlük kaydını nasıl artırır?

Serilog, .NET uygulamalarında günlük kayıtlarını yapılandırılmış, sorgulanabilir nesnelere dönüştürerek, geleneksel düz metin günlük kaydına kıyasla daha iyi teşhis ve analiz sağlar.

Serilog ile yapılandırılmış günlük kaydının avantajları nelerdir?

Serilog ile yapılandırılmış günlük kaydı, log verilerini daha kolay bir şekilde analiz etmek ve sorgulamak için avantaj sağlar, bu özellik, Elasticsearch gibi araçlarla analiz yaparken operasyonel zekayı ve izlemeyi artırır.

.NET 6 uygulamasında Serilog nasıl yapılandırılır?

.NET 6 uygulamasında, Serilog `LoggerConfiguration` sınıfı veya `appsettings.json` gibi yapılandırma dosyaları kullanılarak yapılandırılabilir, kod değişikliği olmadan esnek günlük kaydı davranış ayarlamaları sağlar.

Serilog, farklı günlük kaydı varış yerleri için hangi entegrasyon seçeneklerini sunar?

Serilog, günlük olaylarının konsol, metin dosyaları veya Elasticsearch veya Seq gibi sunucular gibi farklı hedeflere gönderilmesine olanak tanıyan çeşitli sink kütüphaneleri sunar.

Serilog günlük kaydında zenginleştiriciler ne rol oynar?

Serilog'ta zenginleştiriciler günlük olaylarına zaman damgaları ve günlük seviyeleri gibi bağlamsal bilgi ekler ve belirli uygulama verilerini dahil etmek için özel zenginleştiriciler oluşturulabilir, günlüklerin bilgilendirici değerini artırır.

Serilog diğer kütüphanelerle artırılmış işlevsellik için birleştirilebilir 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, böylece .NET uygulamalarında günlük kaydı sürecini ve veri işlemesini zenginleştirir.

.NET'te günlük veri raporlarını nasıl PDF formatında oluşturabilirim?

Günlük veri raporlarını .NET'te IronPDF gibi PDF oluşturup okuma ve düzenleme kütüphaneleri kullanarak oluşturabilir, bu kütüphaneleri günlük sistemleriyle entegre ederek detaylı günlük raporları üretebilirsiniz.

Günlük verilerini Excel'e aktararak .NET'te analiz etmek mümkün mü?

Evet, IronXL gibi kütüphaneleri kullanarak, Office Interop'a gerek duymadan Excel dosyalarını manipüle edebilir, günlük verilerini Excel'e aktarıp .NET uygulamalarında daha fazla analiz ve raporlama yapabilirsiniz.

Iron Software kütüphaneleri, Serilog gibi günlük kaydı sistemlerine ne tür faydalar sağlar?

Iron Software kütüphaneleri, PDF oluşturma, OCR ve Excel dosya manipülasyonu gibi ek fonksiyonlar sağlayarak, .NET ortamlarında veri işleme ve raporlama yeteneklerini zenginleştirerek, günlük kaydı sistemleri gibi Serilog'a fayda sağlar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ...

Daha Fazla Oku

Iron Destek Ekibi

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