
Rejestrowanie w Microsoft C# (jak to działa dla programistów)
Rejestrowanie to podstawowa technika w języku C#, która pozwala na przechwytywanie informacji, ostrzeżeń, błędów i innych istotnych danych podczas działania aplikacji. Pomaga programistom w monitorowaniu działania ich programów, rozwiązywaniu problemów oraz zrozumieniu, jak aplikacja funkcjonuje w różnych kontekstach. C# oferuje kilka frameworków i pakietów do logowania, które ułatwiają wykonywanie zadań związanych z logowaniem. Microsoft.Extensions.Logging jest jednym z najczęściej używanych frameworków do logowania w aplikacjach .NET Core. Pakiet Microsoft.Extensions.Logging NuGet dla .NET Core daje nam dostep do kilku metod rozszerzen, aby pomoc nam w pisaniu różnych poziomów logów. W tym artykułe przyjrzymy się bliżej logowaniu w systemie MS.
Jak skonfigurować rejestrowanie MS
- Utwórz nowy projekt w Visual Studio.
- Zainstaluj biblioteke
Microsoft.Extensions.Loggingz strony pakietu Microsoft.Extensions.Logging na NuGet. - Wstrzyknij interfejs
Loggerdo konsoli. - Skonfiguruj wyjście logowania.
- Twórz logi na różnych poziomach.
- Uruchom kod.
Krok 1: Utwórz nowy projekt w Visual Studio
Aby rozpocząć, utwórz nowy projekt w Visual Studio.
Krok 2: Zainstaluj bibliotekę Microsoft.Extensions.Logging
Zainstaluj biblioteke Microsoft.Extensions.Logging uzywajac strony pakietu Microsoft.Extensions.Logging na NuGet. Ta biblioteka udostępnia klasy i metody niezbędne do rejestrowania w aplikacjach .NET Core.
Krok 3: Wstrzyknięcie interfejsu Logger do konsoli
Aby uzyc funkcjonalnosci logowania, nalezy wstrzyknac instancje interfejsu ILogger do twojej aplikacji konsolowej. Można to osiągnąć za pomocą fabryki logowania.
using Microsoft.Extensions.Logging;
// Create a logger for the application
ILogger<Program> logger = LoggerFactory.Create(builder =>
{
builder.AddConsole(); // Adding console logging
}).CreateLogger<Program>();Imports Microsoft.Extensions.Logging
' Create a logger for the application
Private logger As ILogger(Of Program) = LoggerFactory.Create(Sub(builder)
builder.AddConsole() ' Adding console logging
End Sub).CreateLogger<Program>()Krok 4: Skonfiguruj wyjście logowania
Skonfiguruj sposób wyświetlania logów. Można to zrobić, dodając jednego lub więcej dostawców logowania do Builder loggera. Najpopularniejszym dostawcą jest rejestrator konsoli, który wysyła logi do konsoli.
builder.AddConsole(options =>
{
options.TimestampFormat = "[HH:mm:ss] "; // Setting the timestamp format for logs
});builder.AddConsole(Sub(options)
options.TimestampFormat = "[HH:mm:ss] " ' Setting the timestamp format for logs
End Sub)Krok 5: Tworzenie logów na różnych poziomach
Teraz można zapisywać logi na różnych poziomach za pomocą obiektu logger. Dostepne metody logowania to LogDebug(), LogInformation(), LogWarning(), LogError() oraz LogCritical().
logger.LogDebug("This is a debug message");
logger.LogInformation("This is an information message");
logger.LogWarning("This is a warning message");
logger.LogError("This is an error message");
logger.LogCritical("This is a critical message");logger.LogDebug("This is a debug message")
logger.LogInformation("This is an information message")
logger.LogWarning("This is a warning message")
logger.LogError("This is an error message")
logger.LogCritical("This is a critical message")Krok 6: Uruchom kod
Na koniec uruchom kod i sprawdź, czy logi są wyświetlane zgodnie z skonfigurowanymi ustawieniami.
To wszystko! Pomyślnie skonfigurowałeś i użyłeś rejestrowania MS w swojej aplikacji C#.
Zainstaluj MS Logging
Aby zainstalować MS Logging, wykonaj następujące czynności:
-
Uruchom program Visual Studio.
-
Przejdź do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.
-
W konsoli menedżera pakietów wykonaj następujące polecenie:
Install-Package Microsoft.Extensions.LoggingPowerShell -
Naciśnij klawisz Enter, aby wykonać polecenie. To spowoduje pobranie i zainstalowanie pakietu
Microsoft.Extensions.Loggingdo twojego projektu.
Poziomy logowania
W frameworku Microsoft.Extensions.Logging w C# dostepnych jest kilka poziomów logowania, co pozwala programistom klasyfikowac i oceniana logi wedlug ich znaczenia i powagi. Poziomy te są często używane do rozróżniania różnych typów komunikatów i pomagają w regulowaniu szczegółowości logów.
Domyslne poziomy logowania oferowane przez Microsoft.Extensions.Logging sa nastepujace:
- Trace: Najbardziej szczegółowy poziom, często stosowany w przypadku niezwykle szczegółowych danych, które zapewniają głębokie zrozumienie wewnętrznego działania programu.
- Debug: Informacje dotyczące debugowania, które są przydatne na etapie tworzenia i debugowania, ale często nie są wymagane w środowisku produkcyjnym.
- Informacje: Zawiera szczegółowe informacje na temat normalnego działania aplikacji. Zazwyczaj za pomocą tych logów monitoruje się normalne działanie programu.
- Ostrzeżenie: Wskazuje na potencjalny problem lub kwestię, która może wymagać uwagi w przyszłości. Jest używany w sytuacjach nietypowych lub nieoczekiwanych, które mogą powodować problemy, ale niekoniecznie prowadzą do awarii programu.
- Błąd: Sygnalizuje poważny problem lub pomyłkę, którą należy natychmiast naprawić. Zwykle używane do rejestrowania problemów, które mają wpływ na działanie aplikacji.
- Krytyczny: Najpoważniejszy stan, używany do rejestrowania krytycznych problemów, które wymagają natychmiastowego rozwiązania, ponieważ mogą powodować poważne awarie lub zawieszenia programu.
Każdy poziom logowania służy konkretnemu celowi i zapewnia programistom możliwość zarządzania ilością danych generowanych przez framework logowania. Programiści mogą wybrać odpowiedni poziom rejestrowania komunikatów w zależności od wagi i znaczenia rejestrowanych danych.
Konfigurowanie logowania w C#
Oto podstawowy przyklad, jak skonfigurowac logowanie z uzyciem Microsoft.Extensions.Logging:
using Microsoft.Extensions.Logging;
using System;
class Program
{
// Create a LoggerFactory instance
private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
{
// Add console logger
builder.AddConsole();
// You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
});
// Create a logger
private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();
static void Main(string[] args)
{
// Example log messages
Logger.LogInformation("Information log");
Logger.LogWarning("Warning log");
Logger.LogError("Error log");
try
{
// Simulate an exception
throw new Exception("Exception occurred");
}
catch (Exception ex)
{
// Log exception details
Logger.LogError(ex, "Exception log");
}
Console.ReadKey(); // Wait for a key press before closing the application
}
}Imports Microsoft.Extensions.Logging
Imports System
Friend Class Program
' Create a LoggerFactory instance
Private Shared ReadOnly LoggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
' Add console logger
builder.AddConsole()
' You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
End Sub)
' Create a logger
Private Shared ReadOnly Logger As ILogger = LoggerFactory.CreateLogger(Of Program)()
Shared Sub Main(ByVal args() As String)
' Example log messages
Logger.LogInformation("Information log")
Logger.LogWarning("Warning log")
Logger.LogError("Error log")
Try
' Simulate an exception
Throw New Exception("Exception occurred")
Catch ex As Exception
' Log exception details
Logger.LogError(ex, "Exception log")
End Try
Console.ReadKey() ' Wait for a key press before closing the application
End Sub
End ClassW tym przykładzie do konfiguracji logowania dodano rejestrator konsoli, który zapisuje logi w konsoli. Jednak Microsoft.Extensions.Logging oferuje różnych dostawców logowania, wlacznie z logowaniem do plików, baz danych lub laczeniem z innymi frameworkami logowania. Dodatkowo możliwe jest tworzenie niestandardowych dostawców logowania, którzy mogą formatować logi zgodnie z konkretnymi wymaganiami.
Dodanie dodatkowych dostawców usług rejestrowania
Mozna dodac dodatkowe zródla logowania, laczac odpowiednie metody w funkcji Create(). Na przykład:
- Aby dodac dostawce logowania do debuggera, uzyj
builder.AddDebug(). - Aby dodac dostawce logowania do pliku, uzyj
builder.AddFile("log.txt").
MSLogging w IronPDF
IronPDF wyróżnia się w konwersji HTML do PDF, zapewniając precyzyjne zachowanie oryginalnych układów i stylów. Idealnie nadaje się do tworzenia plików PDF z treści internetowych, takich jak raporty, faktury i dokumentacja. Dzięki obsłudze plików HTML, adresów URL i surowych ciągów znaków HTML, IronPDF z łatwością tworzy wysokiej jakości dokumenty 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");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End ClassAby wlaczyc logowanie w IronPDF, mozna uzyc frameworka Microsoft.Extensions.Logging wraz z wbudowanymi mozliwosciami logowania IronPDF. Oto przykład konfiguracji logowania w IronPDF:
using Microsoft.Extensions.Logging;
using IronPdf;
class Program
{
static void Main(string[] args)
{
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
builder
.AddConsole()
.AddDebug();
});
ILogger<Program> logger = loggerFactory.CreateLogger<Program>();
// Enable logging in IronPDF
Logger.Log = new LoggerImplementation(logger);
// Use IronPDF and perform operations
// ...
// Example of logging an error in IronPDF
Logger.Log.Error("An error occurred while processing the PDF");
// Example of logging a warning in IronPDF
Logger.Log.Warning("This is a warning message");
// Example of logging an information message in IronPDF
Logger.Log.Information("This is an information message");
// ...
// Close and dispose resources
// ...
// Flush the log messages
loggerFactory.Dispose();
}
}Imports Microsoft.Extensions.Logging
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim loggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
builder.AddConsole().AddDebug()
End Sub)
Dim logger As ILogger(Of Program) = loggerFactory.CreateLogger(Of Program)()
' Enable logging in IronPDF
Logger.Log = New LoggerImplementation(logger)
' Use IronPDF and perform operations
' ...
' Example of logging an error in IronPDF
Logger.Log.Error("An error occurred while processing the PDF")
' Example of logging a warning in IronPDF
Logger.Log.Warning("This is a warning message")
' Example of logging an information message in IronPDF
Logger.Log.Information("This is an information message")
' ...
' Close and dispose resources
' ...
' Flush the log messages
loggerFactory.Dispose()
End Sub
End ClassW tym przykladzie tworzymy instancje LoggerFactory z frameworka Microsoft.Extensions.Logging. Nastepnie tworzymy logger z fabryki dla klasy Program.
Aby wlaczyc logowanie w IronPDF, ustawiamy statyczna wlasciwosc Logger.Log na instancje LoggerImplementation, która pobiera logger z loggerFactory. Z ta konfiguracja mozna uzywac metod Logger.Log do logowania wiadomosci w IronPDF.
Po wykonaniu niezbednych operacji za pomoca IronPDF, mozna zamknac i usunac zasoby, a nastepnie opróznic wiadomosci logów przez usuniecie loggerFactory.
Uwaga: Upewnij sie, ze posiadasz zainstalowane niezbedne zaleznosci i pakiety dla Microsoft.Extensions.Logging oraz IronPDF.
Zainstaluj IronPDF
Aby zainstalować bibliotekę IronPDF, wykonaj następujące czynności:
- Otwórz konsolę menedżera pakietów w programie Visual Studio.
- Wpisz następujące polecenie, aby zainstalować bibliotekę IronPDF za pomocą NuGet:
Alternatywnie można użyć interfejsu CLI platformy .NET, uruchamiając w terminalu następujące polecenie:
- Naciśnij klawisz Enter, aby wykonać polecenie. Spowoduje to pobranie i zainstalowanie pakietu IronPDF w Twoim projekcie.
Bibliotekę IronPDF można również zainstalować za pomocą graficznego interfejsu użytkownika menedżera pakietów NuGet. Wystarczy wyszukać pakiet "IronPDF" w zakładce Przeglądaj, wybrać żądany pakiet z listy i zainstalować najnowszą wersję IronPDF.
Po zakończeniu instalacji możesz zacząć korzystać z biblioteki IronPDF w swoim projekcie.
Rejestrowanie MS przy użyciu IronPDF
Na styczen 2022, IronPDF nie integruje sie bezposrednio z Microsoft.Extensions.Logging i nie jest natywnie wspierany. IronPDF jest używany przede wszystkim jako narzędzie do tworzenia i modyfikowania plików PDF w programach napisanych w języku C#.
Można jednak nadal wykorzystywać logowanie przy użyciu Microsoft.Extensions. Dzięki zintegrowaniu rejestrowania zdarzeń z programem C# wraz z IronPDF można zarządzać i rejestrować zdarzenia związane z tworzeniem plików PDF, przepływem pracy aplikacji lub problemami występującymi podczas korzystania z IronPDF.
Oto przykład wykorzystania Microsoft.Extensions do integracji logowania z IronPDF:
using Microsoft.Extensions.Logging;
using IronPdf;
using System;
class Program
{
private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
{
builder.AddConsole(); // Add other logging providers as needed
});
private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();
static void Main(string[] args)
{
try
{
// Your IronPDF code for PDF generation or manipulation
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
PDF.SaveAs("Output.pdf");
Logger.LogInformation("PDF created successfully.");
}
catch (Exception ex)
{
Logger.LogError(ex, "An error occurred while generating the PDF.");
}
Console.ReadKey(); // Wait for a key press before closing the application
}
}Imports Microsoft.Extensions.Logging
Imports IronPdf
Imports System
Friend Class Program
Private Shared ReadOnly LoggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
builder.AddConsole() ' Add other logging providers as needed
End Sub)
Private Shared ReadOnly Logger As ILogger = LoggerFactory.CreateLogger(Of Program)()
Shared Sub Main(ByVal args() As String)
Try
' Your IronPDF code for PDF generation or manipulation
Dim Renderer = New IronPdf.HtmlToPdf()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
PDF.SaveAs("Output.pdf")
Logger.LogInformation("PDF created successfully.")
Catch ex As Exception
Logger.LogError(ex, "An error occurred while generating the PDF.")
End Try
Console.ReadKey() ' Wait for a key press before closing the application
End Sub
End ClassTen przykład pokazuje prosty sposób konfiguracji Microsoft.Extensions.Logging w aplikacji C# korzystającej z IronPDF. Generowane są komunikaty logowania w celu udokumentowania pomyślnego utworzenia plików PDF oraz zarejestrowania wszelkich wyjątków, które mogą wystąpić.
Pamiętaj, aby dostosować poziomy logowania, obsługę błędów i komunikaty do konkretnych potrzeb Twojej aplikacji oraz scenariuszy, w których IronPDF jest używany do tworzenia lub modyfikacji plików PDF. Właściwe rozróżnienie między różnymi typami komunikatów dziennika przy użyciu poziomów logowania może być przydatne do skutecznego debugowania i monitorowania.
Aby dowiedzieć się więcej o IronPDF, odwiedź stronę główną IronPDF.
Wnioski
Podsumowując, integracja biblioteki Microsoft.Extensions.Logging pozwala programistom C# na efektywne wykonywanie zadań związanych z logowaniem. IronPDF zapewnia kompleksowe funkcje rejestrowania, umożliwiające dokładne rejestrowanie, analizę i raportowanie zdarzeń aplikacji, awarii oraz kluczowych danych. Zwiększa to niezawodność aplikacji, ułatwia konserwację i debugowanie.
IronPDF oferuje rózne produkty programowe, wlacznie z pakietem Lite w cenie $999. Ten pakiet zawiera stałą licencję, opcje aktualizacji, roczną konserwację oprogramowania oraz trzydziestodniową gwarancję zwrotu pieniędzy. W trakcie okresu próbnego z znakiem wodnym możesz zapoznać się z funkcjami IronPDF. Aby dowiedzieć się więcej o produktach Iron Software, odwiedź oficjalną stronę internetową Iron Software.

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.
Powiązane artykuły


