ASP.NET Core 3.0 Web Uygulamasında NLog Kullanarak Günlük Kaydını Tümleştirme

NLog: Uygulamanızın içgörülerini günlüğe kaydetmek için büyük bir esneklik ve yapılandırılabilir seçenekler sağlayan açık kaynaklı bir günlükleme çerçevesidir. Aynı anda veritabanı, bulut hizmetleri, dosyalar, konsol vb. Gibi birden çok hedefin seçilmesine izin verir, böylece kullanıcının kodda farklı konfigürasyonları sürdürmesi gerekmez. Bu, en yaygın olarak kullanılan günlükleme çerçevesidir.

Bazı önemli özellikler şunlardır:

  1. Yapılandırması kolay
  2. Şablonlara dayalıdır
  3. Mesajları özel verilerle değiştirebilmeniz için önceden tanımlanmış düzenlere sahiptir
  4. Yapılandırılmış günlük kaydı sağlar

Açık kaynaklı projenin resmi web sitesi: https://nlog-project.org/
ASP.NET Core projesi oluşturma

Adım 1: Visual Studio 2019’u açın ve yeni bir proje oluşturun.

Adım 2: Proje şablonlarından ASP.NET Core Web Uygulamasını seçin.

Adım 3: Projenin adını seçin ve Oluştur düğmesine tıklayın.

Adım 4: Web Uygulama Şablonunu seçin ve aşağıda gösterilen uygun seçimleri yapın.

Adım 5: Yukarıdaki 4 adım, bazı varsayılan dosya ve klasörlerle bir ASP.NET Core 3 Web Uygulaması oluşturacaktır.

Uygulamaya NLog’u entegre etmemiz gerektiğinden, NuGet paket yöneticisinden bazı paketleri yüklememiz gerekiyor.

1. NLog.Web.AspNetCore — Bu, NLog paketlerini kuracak olan pakettir.

2. NLog.config — Bu paket, NLog yapılandırması için tüm kuralları ve hedefleri tanımlayabileceğimiz bir yapılandırma dosyası ekleyecektir. NLog kitaplıkları bu dosyadaki tüm yapılandırmayı okuyacaktır.

Adım 6: Gerekli paketleri ekledikten sonra, yerel sistemimizdeki bir dosyaya günlükleri yazacak bir hedef tanımlayacağımız NLog.config’de bir yapılandırma oluşturalım.

Otomatik olarak üretilen kodu NLog.config dosyasında aşağıdaki kodla değiştirin.

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> <targets> <target xsi:type="File" name="fileTarget" filename="..\logs\log.txt"></target> </targets> <rules> <logger name="*" minlevel="Trace" writeTo="fileTarget" /> </rules> </nlog>

Ayrıca, bu dosyanın özelliğinde değişiklik yapmamız gerekir, böylece bu dosya uygulama dağıtımı sırasında dizine kopyalanabilir.

NLog.config dosyasına sağ tıklayın ve özellikler seçeneğini seçin ve lütfen aşağıda gösterildiği gibi değişiklikleri yapın.

Adım 7: Hedefi yapılandırma dosyasında dosyaya ekledikten sonra, günlükleri yakalayıp tanımlı hedefe gönderebilmem için NLog’u Program.cs dosyasına bir hizmet olarak kaydetmeliyiz.

Program.cs dosyasındaki kodu aşağıda vurgulanan kodla değiştirin.

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging((hostingContext, logging) => { logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); logging.AddDebug(); logging.AddNLog(); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });

WebHost oluşturma sırasında, Startup.cs dosyasını çağırmadan önce günlük kaydını enjekte ediyoruz. Yukarıda vurgulanan ConfigureLogging yöntemi, iki hizmete günlükler eklemektir.

Biri Visual Studio’nun bir özelliği olan Debug pencereleridir ve Diğeri NLog’dur.

AddNLog metodu yukarıdaki adımlarda kurduğumuz Nuget paketinin bir parçasıdır.

AddConfiguration yöntemi, varsayılan olarak Asp.Net Core proje şablonu tarafından oluşturulan günlük yapılandırmasını okumaya çalışıyor.

NLog’u Startup.cs sınıfında servis olarak da tanımlayabiliriz. Başlangıç ​​sınıfından önce bunu çağırmanın ardındaki neden, bazen Başlangıç ​​sınıfı çağrılmadan önce ortaya çıkabilecek bazı çalışma zamanı sorunlarının olmasıdır, bu nedenle onları da yakalayabiliriz.

8. Adım: Şimdi uygulamayı çalıştırın ve projenizin bin klasöründe bir günlük dosyasının oluşturulduğunu göreceksiniz.

Not: NLog.config dosyasındaki dosya adı özelliğinde herhangi bir yolu belirtebilirsiniz ve bu orada bir günlük dosyası oluşturur. NLog yapılandırma dosyasında yapabileceğiniz birçok özelleştirme vardır. Bunlara , bu makalenin başlangıç ​​bölümünde bahsedilen asp.net mvc geliştirme resmi web sitesinde bir göz atın .

Orjinal: https://hackernoon.com/integrating-logging-using-nlog-in-aspnet-core-30-web-app-6f1v31be

You may also like...