IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

NLog C# (Jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 22 czerwca 2025

Rejestrowanie jest istotnym aspektem tworzenia oprogramowania. Pomaga programistom śledzić zachowanie ich aplikacji, rozwiązywać problemy i uzyskać wgląd w to, jak ich kod działa w różnych środowiskach. NLog to popularny framework do logowania dla języka C#, który ułatwia wdrażanie solidnego i elastycznego logowania w aplikacjach. W tym kompleksowym przewodniku i samouczku zgłębimy świat NLog w języku C#.

Czym jest NLog?

NLog to bezpłatna biblioteka logowania typu open source przeznaczona dla aplikacji .NET i .NET Core. Zapewnia elastyczny i wysoce konfigurowalny sposób rejestrowania komunikatów w aplikacji. NLog to szeroko stosowana, bezpłatna platforma do logowania w ekosystemie .NET ze względu na swoją wydajność, rozszerzalność i łatwość użytkowania.

Pierwsze kroki z NLog

Możemy używać NLog w aplikacjach internetowych ASP.NET, interfejsach API ASP.NET WEB, aplikacjach Windows Form, aplikacjach ASP.NET MVC lub dowolnym innym rodzaju, w zależności od naszych potrzeb. Wykorzystamy aplikację konsolową, aby zademonstrować wszystkie przypadki użycia.

Zainstaluj pakiet NuGet NLog

Aby rozpocząć pracę z NLog, musisz zainstalować pakiet NLog NuGet w swoim projekcie. Można to zrobić za pomocą menedżera pakietów NuGet w Visual Studio, wykonując następujące kroki:

  1. W menu "Narzędzia" wybierz "Menedżer pakietów NuGet", a następnie wybierz "Zarządzaj pakietami NuGet dla rozwiązania".
  2. Można też kliknąć prawym przyciskiem myszy na swój projekt w Eksploratorze rozwiązań, wybrać opcję "Zarządzaj pakietami NuGet" i kliknąć "Przeglądaj".
  3. W oknie NuGet Package Manager kliknij kartę "Browse" (Przeglądaj) i w polu wyszukiwania wpisz "NLog".
  4. W wynikach wyszukiwania powinno pojawić się pakiet NLog. Kliknij, aby zaznaczyć.
  5. Po prawej stronie okna NuGet Package Manager znajduje się lista projektów w Twoim rozwiązaniu. Wybierz projekt(y), w których chcesz zainstalować NLog.
  6. Wybierz żądaną wersję pakietu NLog z listy rozwijanej wersji. W razie potrzeby można wybrać najnowszą stabilną wersję lub konkretną wersję.
  7. Po wybraniu projektu (projektów) i wersji kliknij przycisk "Zainstaluj", aby rozpocząć proces instalacji.

Menedżer pakietów NuGet pobierze i zainstaluje NLog oraz wszelkie zależności. Postęp tłumaczenia będzie widoczny w oknie wyników.

NLog został pomyślnie zainstalowany w projekcie i można zacząć używać go do rejestrowania w kodzie C#.

Utwórz plik konfiguracyjny NLog

Aby utworzyć plik konfiguracyjny NLog (zwykle o nazwie nlog.config), można wykonać następujące kroki. Ten plik konfiguracyjny określa, jak NLog powinien działać w Twojej aplikacji, w tym miejsca docelowe logów, renderery układów i reguły.

W projekcie kliknij prawym przyciskiem myszy projekt lub folder, w którym chcesz utworzyć plik konfiguracyjny.

  1. Wybierz "Dodaj" > "Nowy element..."
  2. W oknie dialogowym "Dodaj nowy element" wyszukaj "Plik XML" lub "XML" i wybierz go.
  3. Nazwij plik nlog.config i kliknij przycisk "Dodaj".

  1. Otwórz nowo utworzony plik nlog.config w edytorze tekstowym lub edytorze XML.
  2. Dodaj następującą konfigurację do pliku NLog.XML. Poniżej znajduje się podstawowy przykład konfiguracji NLog, która rejestruje komunikaty w konsoli. Możesz dostosować ten plik konfiguracyjny do swoich potrzeb:

Plik konfiguracyjny

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

W swoim kodzie C# upewnij się, że ładujesz konfigurację NLog z pliku nlog.config. Zwykle robi się to w kodzie startowym aplikacji, na przykład w ASP.NET Core Startup.cs (dla wersji .NET tej samej lub starszej niż .NET 5), pliku program.cs (dla .NET 6 lub nowszej wersji), lub w metodzie Main aplikacji konsolowej:

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();
    }
}

Wynik działania powyższego programu jest następujący:

W tym przykładzie tworzymy instancję klasy Logger i używamy jej do rejestrowania komunikatów na poziomie debugowania. Przyjrzyjmy się poziomom śledzenia obsługiwanym przez NLog.

Poziomy logowania

NLog obsługuje kilka poziomów logowania, z których każdy ma swoje znaczenie:

  1. Śledzenie: Najbardziej szczegółowy poziom, zazwyczaj używany do celów diagnostycznych.
  2. Debug: Służy do wyświetlania informacji dotyczących debugowania, które mogą być pomocne podczas tworzenia oprogramowania.
  3. Informacje: Ogólne informacje na temat działania aplikacji.
  4. Ostrzeżenie: Wskazuje na potencjalny problem, który nie zakłóca działania aplikacji.
  5. Błąd: Wskazuje na niepowodzenie, które należy zbadać, ale niekoniecznie powoduje awarię aplikacji.
  6. Fatal: Wskazuje na krytyczną awarię, którą należy natychmiast usunąć.

Dzięki podziałowi komunikatów dziennika na te poziomy można łatwo je filtrować i ustalać ich priorytety w oparciu o ich ważność.

Ustaw minlevel="Trace" w znaczniku rules w pliku nLog.Config, jak pokazano ponizej.

<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

Napiszmy kod, który będzie rejestrował komunikaty wszystkich poziomów śledzenia.

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();
    }
}

Nasz program zarejestrował komunikaty w konsoli, jak pokazano poniżej.

nlog wiadomosci dziennika

Teraz zaprezentowaliśmy przykład rejestrowania komunikatów w konsoli. Teraz skonfigurujemy cel NLog, aby rejestrował komunikaty w pliku.

Komunikat dziennika w pliku

Musimy ustawić cel plikówy zamiast celu konsoli w naszym pliku konfiguracyjnym do rejestrowania w pliku.

<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

Teraz uruchom program, aby zapisać komunikaty w pliku.

Cele rejestrowania

NLog obsługuje różne miejsca docelowe dla danych dziennika, co pozwala wybrać, gdzie mają być przechowywane komunikaty dziennika. Niektóre typowe cele to:

  1. Plik: Zapisuje komunikaty do jednego lub kilku plików.
  2. Konsola: Rejestruje komunikaty w konsoli.
  3. Baza danych: Zapisuje komunikaty w tabeli bazy danych (SQL Server, MySQL, Oracle, PostgreSQL itp.).
  4. E-mail: Wysyła komunikaty dziennika jako wiadomości e-mail.
  5. Dziennik zdarzeń: Rejestruje komunikaty w dzienniku zdarzeń systemu Windows.
  6. Niestandardowe miejsca docelowe: Możesz tworzyć niestandardowe miejsca docelowe logów, dostosowane do Twoich konkretnych potrzeb.

Można skonfigurować NLog tak, aby korzystał z jednego lub kilku celów jednocześnie.

Przedstawiamy IronPDF

Dowiedz się więcej o IronPDF – potężnej bibliotece .NET, która upraszcza obsługę plików PDF w aplikacjach napisanych w językach C# i VB.NET. Zapewnia rozbudowane możliwości tworzenia, edycji i manipulowania dokumentami PDF, a także konwersji treści HTML do formatu PDF, co czyni go niezbędnym narzędziem dla programistów z wielu różnych branż, w tym tworzenia stron internetowych, raportowania i zarządzania dokumentami.

Wyróżniającą cechą IronPDF jest funkcja konwersji HTML do PDF, która pozwala zachować układ i style dokumentu. Generuje pliki PDF na podstawie treści internetowych, dzięki czemu idealnie nadaje się do tworzenia raportów, faktur i dokumentacji. Pliki HTML, adresy URL i ciągi znaków HTML można łatwo konwertować do formatu PDF.

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");
    }
}

Wygenerujmy plik PDF z logowaniem.

Generowanie plików PDF z rejestrowaniem

Pierwszym krokiem jest zainstalowanie biblioteki IronPDF w naszym projekcie. Możemy to zrobić za pomocą menedżera pakietów NuGet w Visual Studio lub poprzez interfejs CLI NuGet. Otwórz swój projekt i wpisz następujące polecenie w konsoli menedżera pakietów.

PM > Install-Package IronPdf

To polecenie zainstaluje IronPDF wraz ze wszystkimi wymaganymi zależnościami w naszym projekcie.

Napisz poniższy kod, aby wygenerować plik PDF z HTML z logowaniem.

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");
    }
}

Powyższy fragment kodu utworzy plik PDF z zarejestrowanym komunikatem, jak pokazano poniżej.

Plik dziennika i plik PDF

Wnioski

Podsumowując, NLog stał się niezbędnym narzędziem do skutecznego logowania w aplikacjach C#, oferując programistom solidną platformę do przechwytywania, kategoryzowania i zarządzania danymi logów. Jego elastyczność i łatwość użytkowania sprawiają, że jest to najlepszy wybór do rejestrowania danych w różnych dziedzinach. Ponadto, w połączeniu z bibliotekami uzupełniającymi, takimi jak IronPDF, która upraszcza generowanie i edycję plików PDF w aplikacjach .NET, programiści mogą rozszerzyć swoje możliwości zarządzania o tworzenie dzienników i raportów w formacie PDF. Warto wspomnieć, że firma IronPDF oferuje bezpłatną wersję próbną oprogramowania IronPDF, umożliwiającą przetestowanie jego funkcji. Jeśli spełnia to Państwa wymagania, mogą Państwo zdecydować się na licencję komercyjną IronPDF, zapewniającą stały dostęp do możliwości IronPDF wraz z dodatkowymi korzyściami i wsparciem w zakresie płynnej integracji z Państwa projektami, zwłaszcza w zakresie funkcji związanych z plikami PDF.

Wykorzystując możliwości NLog i IronPDF, programiści mogą nie tylko uzyskać wgląd w zachowanie swoich aplikacji, ale także usprawnić procesy raportowania i zarządzania dokumentami, zapewniając, że ich oprogramowanie pozostaje wydajne, łatwe w utrzymaniu i posiada dobrze udokumentowane, ustrukturyzowane logowanie.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta