IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

NLog C# (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 22 Haziran 2025

Günlük kaydı, yazılım geliştirmede önemli bir unsurdur. Geliştiricilerin uygulamaların davranışını takip etmelerine, sorunları gidermelerine ve kodlarının çeşitli ortamlarda nasıl performans gösterdiğini anlamalarına yardımcı olur. NLog, uygulamalarınızda sağlam ve esnek günlük kaydını uygulamayı kolaylaştıran popüler bir C# günlük kaydı çerçevesidir. Bu kapsamlı kılavuzda ve öğreticide, C#'daki NLog dünyasını keşfedeceğiz.

NLog Nedir?

NLog, .NET ve .NET Core uygulamaları için ücretsiz, açık kaynaklı bir günlük kaydı kütüphanesidir. Uygulamanızda mesajları kaydeden esnek ve son derece yapılandırılabilir bir yol sunar. Performansı, genişletilebilirliği ve kullanım kolaylığı nedeniyle .NET ekosisteminde yaygın olarak kullanılan ücretsiz bir günlük kaydı platformudur.

NLog ile Başlarken

ASP.NET Web Uygulamaları, ASP.NET WEB API'leri, Windows Form Uygulamaları, ASP.NET MVC Uygulamaları veya ihtiyaçlarımıza göre herhangi bir şekilde NLog kullanabiliriz. Tüm kullanım durumlarını göstermek için Konsol Uygulamasını kullanacağız.

NLog NuGet Paketini Yükleyin

NLog ile başlamanın için projenize NLog NuGet paketini kurmanız gerekecektir. Bunu, Visual Studio'daki NuGet Paket Yöneticisi üzerinden aşağıdaki adımları izleyerek yapabilirsiniz:

  1. "Araçlar" menüsünden "NuGet Paket Yöneticisi"ni seçin, ardından "Çözüm için NuGet Paketlerini Yönet"i seçin.
  2. Veya Çözüm Gezgini'nde projenize sağ tıklayın, "NuGet Paketlerini Yönet"i seçin ve "Gözat" seçeneğini tercih edin.
  3. NuGet Paket Yöneticisi penceresinde "Gözat" sekmesine tıklayın ve arama kutusuna "NLog" yazın.
  4. NLog paketini arama sonuçlarında görmelisiniz. Seçmek için üzerine tıklayın.
  5. NuGet Paket Yöneticisi penceresinin sağ tarafında, çözümünüzdeki projelerin bir listesi yer alır. NLog'u kurmak istediğiniz projeleri seçin.
  6. NLog paketinin istenen sürümünü sürüm açılır listesinden seçin. Gerekirse en son kararlı sürümü veya belirli bir sürümü seçebilirsiniz.
  7. Projeleri ve sürümü seçtikten sonra kurulum sürecini başlatmak için "Yükle" düğmesine tıklayın.

NuGet Paket Yöneticisi, NLog ve herhangi bir bağımlılıklarını indirip projektinize kuracaktır. İlerlemeyi çıktı penceresinde göreceksiniz.

NLog artık projenize başarıyla kuruldu ve C# kodunuzda günlük kaydı için kullanmaya başlayabilirsiniz.

NLog Yapılandırma Dosyası Oluşturma

NLog yapılandırma dosyası (genellikle nlog.config olarak adlandırılır) oluşturmak için bu adımları izleyebilirsiniz. Bu yapılandırma dosyası, NLog'un uygulamanızda nasıl davranacağını, günlük hedeflerini, düzenleyici düzenlerini ve kuralları içerecek şekilde belirleyecektir.

Projenizde yapılandırma dosyasını oluşturmak istediğiniz proje veya klasöre sağ tıklayın.

  1. "Ekle" > "Yeni Öğe..." seçeneğini seçin.
  2. "Yeni Çekipuçi Ekle" iletişim kutusunda "XML Dosyası" veya "XML" ara ve seç.
  3. Dosyaya nlog.config adını verin ve "Ekle" düğmesine tıklayın.

  1. Yeni oluşturulan nlog.config dosyasını bir metin editör veya XML editörüyle açın.
  2. NLog.XML dosyasına aşağıdaki yapılandırmayı ekleyin. Aşağıda bir Konsol hedefi için mesajları güncelleyerek NLog yapılandırmasının temel bir örneği vardır. Bu Yapılandırma Dosyasını kendi ihtiyaçlarınıza göre özelleştirebilirsiniz:

Yapılandırma dosyası

<?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">

  <!-- Define targets -->
  <targets>
    <!-- Log to a console -->
    <target name="console" xsi:type="Console" layout="${longdate}|${message}"/>
  </targets>

  <!-- Define rules -->
  <rules>
    <!-- All messages with a minimum log level of Debug or higher are written to the Console -->
    <logger name="*" minlevel="Debug" writeTo="console" />
  </rules>

</nlog>
XML

C# kodunuzda, nlog.config dosyasından NLog yapılandırmasını yüklediğinizden emin olun. Bunu genellikle bir ASP.NET Core Startup.cs ( .NET 5 veya daha eski .NET Sürümü için), program.cs dosyasında ( .NET 6 ya da daha sonraki sürümler için) ya da bir konsol uygulamasının Main yönteminde yaparsınız.

using NLog;

internal class Program
{
    // Create an instance of the Logger
    private static Logger logger = LogManager.GetCurrentClassLogger();

    static void Main(string[] args)
    {
        // Log a debug message
        logger.Debug("This is a Debug Message");
        
        // Pause the console for viewing output
        Console.Read();
    }
}

Yukarıdaki programın çıktısı aşağıdaki gibidir:

Bu örnekte, Logger sınıfının bir örneğini oluşturuyor ve Debug Seviyesindeki mesajları güncelleyerek kullanıyoruz. NLog'un desteklediği izleme seviyelerini keşfedelim.

Günlük Seviyeleri

NLog, her birinin kendi önemi olan birkaç günlük seviyeyi destekler:

  1. İzleme: Tipik olarak tanı amaçlı en ayrıntılı seviyedir.
  2. Hata Ayıklama: Geliştirme sırasında faydalı olabilecek hata ayıklama bilgilerinde kullanılır.
  3. Bilgi: Uygulamanın işleyişi hakkında genel bilgileri verir.
  4. Uyarı: Uygulamayı kesintiye uğratmayan potansiyel bir sorunu işaret eder.
  5. Hata: Uygulamayı çökertmeyen ancak araştırılması gereken bir hatayı işaret eder.
  6. Kritik: Hemen ele alınması gereken ciddi bir hatayı işaret eder.

Bu seviyelere göre günlük mesajlarını kategorize ederek, ciddiyetlerine göre onları kolayca filtreleyip önceliklendirebilirsiniz.

Aşağıda gösterildiği gibi nLog.Config dosyanızdaki kurallar etiketine minlevel="Trace" ayarlayın.

<rules>
  <!-- All messages with a minimum log level of Trace or higher are written to the Console -->
  <logger name="*" minlevel="Trace" writeTo="console" />
</rules>
XML

Tüm izleme seviyeleri için mesajları güncelleyerek kod yazalım.

using NLog;

internal class Program
{
    // Create an instance of the Logger
    private static Logger logger = LogManager.GetCurrentClassLogger();

    static void Main(string[] args)
    {
        // Log messages of different tracking levels
        logger.Trace("This is a Trace Message");
        logger.Debug("This is a Debug Message");
        logger.Info("This is an Info Message");
        logger.Warn("This is a Warning Message");
        logger.Error("This is an Error Message");
        logger.Fatal("This is a Fatal Message");

        // Pause the console for viewing output
        Console.Read();
    }
}

Programımız aşağıdaki gibi Konsolda mesajları güncellemiştir.

nlog günlük mesajları

Şimdi, Konsolda mesajların güncellenmesinin bir örneğini gösterdik. Şimdi dosyada mesajları güncellemek için bir NLog hedefini yapılandıracağız.

Dosyada Günlük Mesajları

Dosya kaydı için yapılandırma dosyamızda Konsol hedefi yerine bir dosya hedefi ayarlamamız gerekiyor.

<targets>
  <!-- Log to a file at specified location -->
  <target xsi:type="File" name="fileTarget" fileName="D:\Logs\mylog.txt" layout="${longdate} ${level:uppercase=true} ${message}" />
</targets>

<rules>
  <!-- All messages with a minimum log level of Trace or higher are written to the file -->
  <logger name="*" minlevel="Trace" writeTo="fileTarget" />
</rules>
XML

Şimdi, dosyada mesajları güncellemek için programı çalıştırın.

Günlükleme hedefleri

NLog, çeşitli günlük çıkış hedeflerini destekleyerek günlük mesajlarınızın nerede saklanması gerektiğini seçmenize olanak tanır. Bazı yaygın hedefler şunları içerir:

  1. Dosya: Bir veya daha fazla dosyaya mesajları günceller.
  2. Konsol: Konsola mesajları günceller.
  3. Veritabanı: Bir veritabanına (SQL Server, MySQL, Oracle, PostgreSQL, vb.) tabloya mesajları günceller.
  4. E-posta: Günlük mesajlarını e-posta olarak gönderir.
  5. Olay Günlüğü: Windows Olay Günlüğüne mesajları günceller.
  6. Özel Hedefler: Özel günlük hedefleri oluşturabilirsiniz, özgün gereksinimlerinize uygun olarak.

NLog'u bir veya daha fazla hedefi aynı anda kullanacak şekilde yapılandırabilirsiniz.

IronPDF Tanıtımı

IronPDF Hakkında Daha Fazla Keşfedin, C# ve VB.NET uygulamalarında PDF işlemlerini basitleştiren güçlü bir .NET kütüphanesidir. HTML içeriğini PDF formatına dönüştürme ve PDF belgeleri oluşturma, düzenleme ve manipüle etme için sağlam yetenekler sunar, bu da web geliştirme, raporlama ve belge yönetimini içeren birçok endüstriden geliştiriciler için önemli bir araç haline getirir.

IronPDF'nin öne çıkan özelliği, HTML'den PDF'ye dönüştürme işlevselliğidir, bu işlevsellik düzen ve stillerinizi korur. Web içeriğinden raporlar, faturalar ve belge oluşturmak için idealdir. HTML dosyaları, URL'ler ve HTML dizgileri kolayca PDF'lere dönüştürülebilir.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Haydi, günlükleme ile PDF oluşturalım.

Günlükleme ile PDF Oluşturma

İlk adım, projemize IronPDF kütüphanesini kurmaktır. Bunu, Visual Studio'daki NuGet Paket Yöneticisi veya NuGet CLI ile yapabiliriz. Projenizi açın ve Paket Yöneticisi Konsoluna şu komutu yazın.

PM > Install-Package IronPdf

Bu komut, projemize gerekli tüm bağımlılıklarla birlikte IronPDF'yi kuracaktır.

HTML'den günlükleme ile PDF dosyası oluşturmak için aşağıdaki kodu yazın.

using NLog;
using IronPdf;

internal class Program
{
    // Create an instance of the Logger
    private static Logger logger = LogManager.GetCurrentClassLogger();

    static void Main(string[] args)
    {
        logger.Info("Initializing Chrome PDF Renderer");
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        logger.Info("Creating PDF From HTML String");
        var pdf = renderer.RenderHtmlAsPdf("<h1>This is my Sample PDF<h1>");

        logger.Info("Saving PDF File");
        pdf.SaveAs(@"D:\myPDF.pdf");
    }
}

Yukarıdaki kod parçacığı, aşağıda gösterildiği gibi dosyada güncellenen mesaj ile bir PDF dosyası oluşturacak.

Günlükleme ve PDF Dosyası

Sonuç

Sonuç olarak, NLog, C# uygulamalarında etkili günlükleme için temel bir araç olarak öne çıkmıştır, geliştiricilere günlük verileri yakalamak, kategorize etmek ve yönetmek için sağlam bir çerçeve sunar. Esnekliği ve kullanım kolaylığı, çeşitli alanlardaki günlük ihtiyaçları için vazgeçilmez bir seçim haline getirir. Ayrıca, IronPDF gibi, .NET uygulamalarında PDF oluşturma ve manipülasyonunu kolaylaştıran tamamlayıcı kütüphanelerle birleştiğinde, geliştiriciler PDF tabanlı günlükler ve raporlar oluşturma yönetim yeteneklerini genişletebilir. IronPDF'nin ücretsiz denemesi özelliklerini test etmek için IronPDF'nin sunduğunu belirtmekte fayda var. İhtiyaçlarınıza uygunsa, IronPDF'nin yeteneklerine sürekli erişim sağlamanın yanı sıra, ek avantajlar ve projelerinizin, özellikle PDF ile ilgili işlevselliklerin sorunsuz entegrasyonu için destek sağlayan bir ticari lisansı tercih edebilirsiniz.

NLog ve IronPDF'nin gücünü bir arada kullanarak, geliştiriciler yalnızca uygulamalarının davranışlarını anlamakla kalmaz, aynı zamanda raporlama ve belge yönetimi süreçlerini geliştirebilir, yazılımlarının verimli, sürdürülebilir ve iyi belgelenmiş yapılandırılmış günlüklemeye sahip olduğundan emin olabilirler.

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 ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez