Rejestrowanie w Prism (jak to działa dla programistów)
Aplikacje konsolowe, pomimo braku graficznego interfejsu uzytkownika, czesto wymagaja solidnych mechanizmow logowania do sledzenia bledow, monitorowania wydajnosci aplikacji i skutecznego debugowania problemow. Prism.Plugin.Logging, rozszerzenie Prism Logging framework, oferuje kompleksowe rozwiazanie logowania dla aplikacji .NET, wlaczajac wsparcie dla roznych dostawcow logowania.
W tym artykule analizujemy, jak zintegrowac Prism Logging z aplikacjami konsolowymi przy uzyciu IronPDF, potężnej biblioteki .NET do pracy z dokumentami PDF. Laczac te narzedzia, programisci moga wdrozyc zaawansowana funkcjonalnosc logowania w swoich aplikacjach konsolowych, zwiekszajac mozliwosci utrzymania i rozwiązywania problemow.
Wprowadzenie do Prism Logging
Prism.Plugin.Logging rozszerza Prism, popularny framework do budowy aplikacji XAML, poprzez dostarczenie kompleksowych mozliwosci logowania. Dzieki wsparciu dla wielu dostawcow logowania, takich jak NLog, Serilog i Microsoft.Extensions.Logging, Prism.Plugin.Logging oferuje elastycznosc i mozliwosci dostosowywania do roznych wymagan aplikacji.
Zalety uzywania Prism logging
Elastyczna konfiguracja logowania: Prism.Plugin.Logging umozliwia programistom bezproblemowa konfiguracje roznych dostawcow logowania, wlaczajac popularne opcje jak NLog, Serilog i Microsoft.Extensions.Logging.
Wsparcie dla logowania strukturalnego: Programisci moga rejestrowac dane strukturalne wraz z komunikatami uzywajac Prism.Plugin.Logging. Funkcja ta jest szczegolnie pomocna w scenariuszach z udzialem aplikacji konsolowych, gdzie musza byc rejestrowane i dolaczane do raportow logow produkowanych przez IronPDF rozbudowane dane kontekstowe, w tym znaczniki czasu, kody bledow czy dzialania uzytkownikow.
Jak uzywac Prism logging
- Utwórz nowy projekt w języku C#
- Zainstaluj pakiet Prism logging.
- Utworz obiekt SyslogLogger i podaj konfiguracje jako parametr.
- Wywolaj metode log przy kazdej potrzebie, podajac komunikat logu i poziom logowania.
- Usun obiekt logu na koncu.
Rozpoczecie pracy z Prism Logs
Setting up Prism in C# Projects
Integracja Prism z projektem C# jest prosta. Konieczne jest wykorzystanie NuGet, menedzera pakietow .NET firmy Microsoft, aby dodac Prism. Niezbedne narzedzia i biblioteki do wlaczenia Prism Logs do projektow dostarcza ta biblioteka.

Implementacja Prism w aplikacjach Dot .NET
Prism jest kompatybilny z wieloma typami aplikacji Dot .NET, wlaczajac Windows Forms (WinForms) i Windows Console. Chociaz kazdy framework jest implementowany inaczej, podstawowa koncepcja zawsze pozostaje niezmienna, pomagajac nam w logowaniu danych zwiazanych z aplikacja.
Tworzenie nowego projektu w Visual Studio
Wybierz menu Plik w aplikacji Visual Studio. Kliknij "Nowy Projekt", nastepnie wybierz "Aplikacja konsolowa".

Wpisz nazwe projektu w wyznaczonym polu tekstowym po wybraniu lokalizacji pliku. Nastepnie, jak pokazano w przykladzie ponizej, wybierz wymagana .NET Framework, klikajac przycisk Utworz.

Nastepnie wybrana aplikacja zdecyduje, jak bedzie zorganizowany projekt Visual Studio. Wystarczy otworzyc plik program.cs, aby rozpoczac dodawanie kodu do aplikacji i jej budowanie. Mozesz uzywac Windows, konsoli lub aplikacji internetowych.
Po tym mozna dodac biblioteke i przetestowac kod.
Podstawowy przyklad uzywania Prism Logs
W przykladzie kodu ponizej inicjujemy obiekt logowania Prism, a nastepnie dodajemy kolejne poziomy logowania do Prism logs, zapisujac wszystkie logi oraz ich waznosc na liscie.
using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
public class Demo
{
public string Name { get; set; }
public int Age { get; set; }
// Configure the logger options
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
static IList<LogData> Loglst = new List<LogData>();
static async Task Main(string[] args)
{
MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
PerformApplicationLogic();
MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information);
}
static void PerformApplicationLogic()
{
// Example application logic
Console.WriteLine("Performing application logic...");
// Simulate error
try
{
throw new Exception("Simulated Exception");
}
catch (Exception ex)
{
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
}
}
// Logs messages and their levels
static void MessageLog(string message, Prism.Logging.Syslog.Level level)
{
Loglst.Add(new LogData { Message = message, Level = level.ToString() });
logger.Log(message, level);
}
public class LogData
{
public string Message { get; set; }
public string Level { get; set; }
}
public class Options : ISyslogOptions
{
public string HostNameOrIp { get; set; }
public int? Port { get; set; }
public string AppNameOrTag { get; set; }
}
}
}
using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
public class Demo
{
public string Name { get; set; }
public int Age { get; set; }
// Configure the logger options
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
static IList<LogData> Loglst = new List<LogData>();
static async Task Main(string[] args)
{
MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
PerformApplicationLogic();
MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information);
}
static void PerformApplicationLogic()
{
// Example application logic
Console.WriteLine("Performing application logic...");
// Simulate error
try
{
throw new Exception("Simulated Exception");
}
catch (Exception ex)
{
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
}
}
// Logs messages and their levels
static void MessageLog(string message, Prism.Logging.Syslog.Level level)
{
Loglst.Add(new LogData { Message = message, Level = level.ToString() });
logger.Log(message, level);
}
public class LogData
{
public string Message { get; set; }
public string Level { get; set; }
}
public class Options : ISyslogOptions
{
public string HostNameOrIp { get; set; }
public int? Port { get; set; }
public string AppNameOrTag { get; set; }
}
}
}
Imports Prism.Logging.Syslog
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks
Friend Class Program
Public Class Demo
Public Property Name() As String
Public Property Age() As Integer
' Configure the logger options
Private Shared genOptions As New Options With {
.HostNameOrIp = "127.0.0.1",
.Port = 514,
.AppNameOrTag = "LoggingDemo"
}
Private Shared logger As New SyslogLogger(genOptions)
Private Shared Loglst As IList(Of LogData) = New List(Of LogData)()
Shared Async Function Main(ByVal args() As String) As Task
MessageLog("Application started.", Prism.Logging.Syslog.Level.Information)
PerformApplicationLogic()
MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information)
End Function
Private Shared Sub PerformApplicationLogic()
' Example application logic
Console.WriteLine("Performing application logic...")
' Simulate error
Try
Throw New Exception("Simulated Exception")
Catch ex As Exception
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error)
End Try
End Sub
' Logs messages and their levels
Private Shared Sub MessageLog(ByVal message As String, ByVal level As Prism.Logging.Syslog.Level)
Loglst.Add(New LogData With {
.Message = message,
.Level = level.ToString()
})
logger.Log(message, level)
End Sub
Public Class LogData
Public Property Message() As String
Public Property Level() As String
End Class
Public Class Options
Implements ISyslogOptions
Public Property HostNameOrIp() As String
Public Property Port() As Integer?
Public Property AppNameOrTag() As String
End Class
End Class
End Class
Raporty z logow sa generowane z Prism Logging. Uzywamy narzedzia Kiwi Syslog Service Manager do monitorowania logow Prism.
Plik wyjsciowy logu Prism

Operacje logow Prism
Rozszerzalne logowanie
Mozliwosci Prism.Plugin.Logging sa rozszerzane poprzez logowanie, co zapewnia wiecej funkcjonalnosci i elastycznosci. Oferuje szereg opcji konfiguracji w celu dostosowania poziomow logow, celow logowania i innych zmiennych do potrzeb logowania twojej aplikacji.
Wiele celow logowania
Z Prism.Plugin.Logging mozesz kierowac komunikaty logow do roznych lokalizacji, w tym konsoli, plikow, baz danych i innych uslug logowania. Dzieki takiej elastycznosci mozesz wybrac najlepsze cele logowania dla wymagan i srodowiska twojej aplikacji.
Niestandardowi logerzy
Z pluginem mozna zaimplementowac interfejs ILoggerFacade Prism do konstruowania niestandardowych logerow. Pozwala to konstruowac niestandardowe funkcje logowania w oparciu o potrzeby twojej aplikacji lub integracje z okviraniami logowania firm trzecich.
Tworzenie logow z Prism Logs
Logi Prism moga byc latwo tworzony przy uzyciu kilku lini kodu. Poniżej znajduje się przyklad tworzenia logu.
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
Private Shared genOptions As New Options With {
.HostNameOrIp = "127.0.0.1",
.Port = 514,
.AppNameOrTag = "LoggingDemo"
}
Private Shared logger As New SyslogLogger(genOptions)
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information)
Integracja Prism Logging i IronPDF
Uzywanie Prism i IronPDF razem
Laczenie Prism z IronPDF w projekcie C# otwiera ciekawe mozliwosci. IronPDF to wspaniale narzedzie do konwertowania tej zawartosci na pliki PDF, mimo ze Prism to doskonale narzedzie do pracy z logami. Programisci moga tworzyc aplikacje, ktore zapisuje element do zaprojektowanego na zamowienie dokumentu PDF dzieki tej lacznosci.
Prism Logging wraz z IronPDF
Tworzac aplikacje konsolowa Windows, ktora wykorzystuje Prism Logs, uzytkownicy moga korzystac z logow w ramach programu. Ten kontroler powinien zmiescic sie w konsoli, pozostawiajac duzo miejsca na tworzenie logow. Dodaj operacje logow serwera i logi HTTP.
Zainstaluj IronPDF
- Otworz projekt Visual Studio.
-
Wybierz "Narzędzia" > "Menedżer pakietów NuGet" > "Konsola menedżera pakietów".
- W Konsoli Menedzera Pakietow wpisz nastepujaca komende i nacisnij Enter:
Install-Package IronPdf
- Inna metoda instalacji IronPDF to skorzystanie z Menedzera Pakietow NuGet dla Rozwiazania.
- Przejrzyj wyniki wyszukiwania pakietu IronPDF, wybierz go, a nastepnie kliknij przycisk "Install". Visual Studio automatycznie zajmie się pobraniem i instalacją.

- NuGet pobierze i zainstaluje pakiet IronPDF wraz z wszelkimi wymaganymi zaleznosciami dla twojego projektu.
- Po zainstalowaniu IronPDF mozna go uzywac dla swojego projektu.
Zainstaluj za pośrednictwem strony internetowej NuGet
Odwiedz strone IronPDF pod adresem https://www.nuget.org/packages/IronPdf na stronie NuGet, aby dowiedziec sie wiecej o funkcjach IronPDF, kompatybilnosci i innych opcjach pobierania.
Wykorzystaj bibliotekę DLL do instalacji
Alternatywnie, mozesz wlaczyc IronPDF bezposrednio do swojego projektu, korzystajac z jego pliku DLL. Aby pobrac plik ZIP zawierajacy DLL, kliknij ten link. Po rozpakowaniu pliku dodaj bibliotekę DLL do swojego projektu.
Implementacja logiki
- Konfiguracja Renderera i Logera: Oprogramowanie konfiguruje renderer IronPDF i logger Prism.
- Logowanie komunikatow: Komunikaty z okreslona kategoria i priorytetem moga byc logowane, korzystajac z metody MessageLog(). W tym przykladzie logujemy komunikaty o uruchomieniu i zatrzymaniu aplikacji oraz wszelkie wyjatki, które wystapily podczas wykonywania aplikacji.
- Stosowanie logiki: Czesc logiki aplikacji jest symulowana przez metode PerformApplicationLogic(). Aby zilustrowac logowanie bledow, produkuje on jedynie komunikat i wywoluje wyjatek w tym przypadku.
- Tworzenie raportu logu PDF: Po wykonaniu logiki aplikacji, oprogramowanie tworzy dokument HTML na podstawie zapisanych komunikatow. Nastepnie korzysta z funkcji RenderHtmlAsPdf() IronPDF, aby przeksztalcic dokument HTML w plik logu w formie raportu PDF. Plik PDF jest nastepnie zapisywany na dysku.
Rozszerzajac wczesniej zdefiniowany kod w celu integracji kodu IronPDF:
using IronPdf;
static void GeneratePdfLogReport()
{
var renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer
// Generate HTML content for PDF report
string htmlContent = "<h1>Log Report</h1><ul>";
foreach (var log in Loglst)
{
htmlContent += $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>";
}
htmlContent += "</ul>";
// Generate PDF document
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save PDF file
string filePath = "log_report.pdf";
pdfDocument.SaveAs(filePath);
Console.WriteLine($"PDF log report generated: {filePath}");
}
using IronPdf;
static void GeneratePdfLogReport()
{
var renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer
// Generate HTML content for PDF report
string htmlContent = "<h1>Log Report</h1><ul>";
foreach (var log in Loglst)
{
htmlContent += $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>";
}
htmlContent += "</ul>";
// Generate PDF document
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save PDF file
string filePath = "log_report.pdf";
pdfDocument.SaveAs(filePath);
Console.WriteLine($"PDF log report generated: {filePath}");
}
Imports IronPdf
Shared Sub GeneratePdfLogReport()
Dim renderer = New ChromePdfRenderer() ' Instantiates Chrome Renderer
' Generate HTML content for PDF report
Dim htmlContent As String = "<h1>Log Report</h1><ul>"
For Each log In Loglst
htmlContent &= $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>"
Next log
htmlContent &= "</ul>"
' Generate PDF document
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Save PDF file
Dim filePath As String = "log_report.pdf"
pdfDocument.SaveAs(filePath)
Console.WriteLine($"PDF log report generated: {filePath}")
End Sub
Poniżej znajduje się obraz raportu z logow wygenerowanego z IronPDF

Aby dowiedziec sie wiecej o referencjach kodu IronPDF, odwołaj się tutaj.
Wnioski
Prism.Plugin.Logging integracja z IronPDF umozliwia programistom latwa integracje rozbudowanej funkcjonalności logowania do aplikacji terminalowych. Programiści mogą poprawić ogólną konserwację programu, zoptymalizować możliwości debugowania i przyspieszyć operacje logowania, korzystając z funkcji obu narzędzi. Prism.Plugin.Logging umożliwia aplikacjom konsolowym uzyskanie pełnego zakresu logowania, zapewniając mocne monitorowanie i możliwości rozwiązywania problemów dzięki właściwym wdrożeniu i konfiguracji.
IronPDF oferuje wieczysta licencje na Lite bundle, która obejmuje stała licencje, rok utrzymania oprogramowania oraz aktualizacje biblioteki. IronPDF oferuje darmowa licencje do celow rozwojowych, podlegajac ograniczeniom czasowym i redystrybucyjnym. Aby zdobyć darmowa wersje próbna. Aby dowiedzieć się więcej o różnych produktach Iron Software, odwiedź ich stronę internetową.
Często Zadawane Pytania
Jak mogę zintegrować rejestrowanie z aplikacją konsolową .NET?
Możesz zintegrować logowanie z aplikacją konsolową .NET Framework za pomocą Prism.Plugin.Logging, który obsługuje różnych dostawców logowania i oferuje ustrukturyzowaną platformę logowania. Aby to skonfigurować, zainstaluj pakiet logowania Prism, utwórz niezbędne obiekty logowania oraz skonfiguruj cele i poziomy logowania.
Jakie są zalety połączenia Prism Logging z IronPDF?
Połączenie Prism Logging z IronPDF pozwala generować raporty logów w formacie PDF, usprawniając konserwację aplikacji i rozwiązywanie problemów. IronPDF może konwertować zawartość logów HTML na dokumenty PDF, zapewniając przenośny format do przeglądania i udostępniania logów.
Jak mogę przekonwertować dane dziennika na dokument PDF w .NET?
Aby przekonwertować dane dziennika na dokument PDF w środowisku .NET, należy użyć biblioteki IronPDF do renderowania danych dziennika jako HTML, a następnie przekonwertować je na PDF za pomocą metod takich jak RenderHtmlAsPdf. Pozwala to na tworzenie szczegółowych i przenośnych raportów dziennika.
Którzy dostawcy usług logowania są kompatybilni z Prism.Plugin.Logging?
Prism.Plugin.Logging jest kompatybilny z wieloma dostawcami logowania, w tym NLog, Serilog i Microsoft.Extensions.Logging. Ta elastyczność pozwala programistom wybrać dostawcę logowania, który najlepiej odpowiada potrzebom ich projektu.
Jak skonfigurować projekt logowania Prism w Visual Studio?
Aby skonfigurować projekt logowania Prism w Visual Studio, należy utworzyć nowy projekt C#, zainstalować pakiet logowania Prism za pomocą menedżera pakietów NuGet oraz zainicjować framework logowania poprzez utworzenie obiektu SyslogLogger i skonfigurowanie poziomów logowania oraz miejsc docelowych.
Czy Prism.Plugin.Logging może być używany do niestandardowych konfiguracji logowania?
Tak, Prism.Plugin.Logging obsługuje niestandardowe konfiguracje logowania. Można dostosować poziomy logowania, zdefiniować niestandardowe loggery i kierować komunikaty logowania do różnych miejsc docelowych, co pozwala na dostosowanie konfiguracji logowania do konkretnych wymagań aplikacji.




