Rejestrowanie w Prism (jak to działa dla programistów)
Aplikacje konsolowe, pomimo braku graficznego interfejsu użytkownika, często wymagaja solidnych mechanizmow logowania do sledzenia błędów, monitorowania wydajności aplikacji i skutecznego debugowania problemow. Prism.Plugin.Logging, rozszerzenie Prism Logging framework, oferuje kompleksowe rozwiązanie logowania dla aplikacji .NET, włączajac wsparcie dla różnych dostawcow logowania.
W tym artykułe analizujemy, jak zintegrowac Prism Logging z aplikacjami konsolowymi przy użyciu IronPDF, potężnej biblioteki .NET do pracy z dokumentami PDF. Laczac te narzędzia, programisci mogą wdrożyć zaawansowana funkcjonalność logowania w swoich aplikacjach konsolowych, zwiększając możliwości utrzymania i rozwiązywania problemow.
Wprowadzenie do Prism Logging
Prism.Plugin.Logging rozszerza Prism, popularny framework do budowy aplikacji XAML, poprzez dostarczenie kompleksowych możliwości logowania. Dzięki wsparciu dla wielu dostawcow logowania, takich jak NLog, Serilog i Microsoft.Extensions.Logging, Prism.Plugin.Logging oferuje elastycznosc i możliwości dostosowywania do różnych wymagań aplikacji.
Zalety używania Prism logging
Elastyczna konfiguracja logowania: Prism.Plugin.Logging umożliwia programistom bezproblemowa konfiguracje różnych dostawcow logowania, włączajac popularne opcje jak NLog, Serilog i Microsoft.Extensions.Logging.
Wsparcie dla logowania strukturalnego: Programisci mogą rejestrowac dane strukturalne wraz z komunikatami używając Prism.Plugin.Logging. Funkcja ta jest szczegółnie pomocna w scenariuszach z udzialem aplikacji konsolowych, gdzie musza być rejestrowane i dolaczane do raportow logow produkowanych przez IronPDF rozbudowane dane kontekstowe, w tym znaczniki czasu, kody błędów czy działania użytkowników.
Jak używać 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 narzędzia i biblioteki do włączenia Prism Logs do projektow dostarcza ta biblioteka.

Implementacja Prism w aplikacjach Dot .NET
Prism jest kompatybilny z wieloma typami aplikacji Dot .NET, włączajac Windows Forms (WinForms) i Windows Console. Chociaż kazdy framework jest implementowany inaczej, podstawowa koncepcja zawsze pozostaje niezmienna, pomagajac nam w logowaniu danych związanych z aplikacja.
Tworzenie nowego projektu w Visual Studio
Wybierz menu Plik w aplikacji Visual Studio. Kliknij "Nowy Projekt", następnie wybierz "Aplikacja konsolowa".

Wpisz nazwe projektu w wyznaczonym polu tekstowym po wybraniu lokalizacji pliku. Następnie, jak pokazano w przykładzie poniżej, wybierz wymagana .NET Framework, klikajac przycisk Utworz.

Następnie wybrana aplikacja zdecyduje, jak będzie zorganizowany projekt Visual Studio. Wystarczy otworzyć plik program.cs, aby rozpoczac dodawanie kodu do aplikacji i jej budowanie. Możesz używać Windows, konsoli lub aplikacji internetowych.
Po tym można dodac biblioteke i przetestowac kod.
Podstawowy przykład używania Prism Logs
W przykładzie kodu poniżej inicjujemy obiekt logowania Prism, a następnie dodajemy kolejne poziomy logowania do Prism logs, zapisujac wszystkie logi oraz ich ważność 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 narzędzia 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 więcej funkcjonalności 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 możesz kierowac komunikaty logow do różnych lokalizacji, w tym konsoli, plików, baz danych i innych uslug logowania. Dzięki takiej elastycznosci możesz wybrac najlepsze cele logowania dla wymagań i środowiska twojej aplikacji.
Niestandardowi logerzy
Z pluginem można 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 mogą być łatwo tworzony przy użyciu kilku lini kodu. Poniżej znajduje się przykład 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 możliwości. IronPDF to wspaniale narzędzie do konwertowania tej zawartości na pliki PDF, mimo ze Prism to doskonale narzędzie do pracy z logami. Programisci mogą tworzyć aplikacje, ktore zapisuje element do zaprojektowanego na zamowienie dokumentu PDF dzięki tej lacznosci.
Prism Logging wraz z IronPDF
Tworzac aplikacje konsolowa Windows, która wykorzystuje Prism Logs, użytkownicy mogą korzystać 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 następująca komende i naciśnij Enter:
Install-Package IronPdf
- Inna metoda instalacji IronPDF to skorzystanie z Menedzera Pakietow NuGet dla Rozwiazania.
- Przejrzyj wyniki wyszukiwania pakietu IronPDF, wybierz go, a następnie kliknij przycisk "Install". Visual Studio automatycznie zajmie się pobraniem i instalacją.

- NuGet pobierze i zainstaluje pakiet IronPDF wraz z wszelkimi wymaganymi zależnościami dla twojego projektu.
- Po zainstalowaniu IronPDF można go używać 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 więcej o funkcjach IronPDF, kompatybilnosci i innych opcjach pobierania.
Wykorzystaj bibliotekę DLL do instalacji
Alternatywnie, możesz włączyć IronPDF bezpośrednio do swojego projektu, korzystając 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 mogą być logowane, korzystając z metody MessageLog(). W tym przykładzie logujemy komunikaty o uruchomieniu i zatrzymaniu aplikacji oraz wszelkie wyjątki, które wystapily podczas wykonywania aplikacji.
- Stosowanie logiki: Czesc logiki aplikacji jest symulowana przez metode PerformApplicationLogic(). Aby zilustrowac logowanie błędów, produkuje on jedynie komunikat i wywoluje wyjątek w tym przypadku.
- Tworzenie raportu logu PDF: Po wykonaniu logiki aplikacji, oprogramowanie tworzy dokument HTML na podstawie zapisanych komunikatow. Następnie korzysta z funkcji RenderHtmlAsPdf() IronPDF, aby przeksztalcic dokument HTML w plik logu w formie raportu PDF. Plik PDF jest następnie 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 więcej o referencjach kodu IronPDF, odwołaj się tutaj.
Wnioski
Prism.Plugin.Logging integracja z IronPDF umożliwia programistom łatwa 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 licencję wieczystą Lite bundle, która zawiera stałą licencję, rok utrzymania oprogramowania i aktualizację 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.




