Rejestrowanie w Prism (jak to działa dla programistów)
Aplikacje konsolowe, pomimo braku graficznego interfejsu użytkownika, często wymagają solidnych mechanizmów logowania do śledzenia błędów, monitorowania wydajności aplikacji i skutecznego debugowania problemów. Prism.Plugin.Logging, rozszerzenie Prism Logging framework, oferuje kompleksowe rozwiązanie logowania dla aplikacji .NET, włączając wsparcie dla różnych dostawców logowania.
W tym artykule analizujemy, jak zintegrować Prism Logging z aplikacjami konsolowymi przy użyciu IronPDF, potężnej biblioteki .NET do pracy z dokumentami PDF. Łącząc te narzędzia, programiści mogą wdrożyć zaawansowaną funkcjonalność logowania w swoich aplikacjach konsolowych, zwiększając możliwości utrzymania i rozwiązywania problemów.
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 dostawców logowania, takich jak NLog, Serilog i Microsoft.Extensions.Logging, Prism.Plugin.Logging oferuje elastyczność i możliwości dostosowywania do różnych wymagań aplikacji.
Zalety uzywania Prism logging
Elastyczna konfiguracja logowania: Prism.Plugin.Logging umożliwia programistom bezproblemową konfigurację różnych dostawców logowania, włączając popularne opcje jak NLog, Serilog i Microsoft.Extensions.Logging.
Wsparcie dla logowania strukturalnego: Programiści mogą rejestrować dane strukturalne wraz z komunikatami używając Prism.Plugin.Logging. Funkcja ta jest szczególnie pomocna w scenariuszach z udziałem aplikacji konsolowych, gdzie muszą być rejestrowane i dołączane do raportów logów produkowanych przez IronPDF rozbudowane dane kontekstowe, w tym znaczniki czasu, kody błędów czy działania użytkowników.
Jak uzywac Prism logging
- Utwórz nowy projekt w języku C#
- Zainstaluj pakiet Prism logging.
- Utwórz obiekt SyslogLogger i podaj konfigurację jako parametr.
- Wywołaj metodę log przy każdej potrzebie, podając komunikat logu i poziom logowania.
- Usuń obiekt logu na końcu.
Rozpoczęcie pracy z Prism Logs
Konfiguracja Prism w projektach C
Integracja Prism z projektem C# jest prosta. Konieczne jest wykorzystanie NuGet, menedżera pakietów .NET firmy Microsoft, aby dodać Prism. Niezbędne narzędzia i biblioteki do włączenia Prism Logs do projektów dostarcza ta biblioteka.

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

Wpisz nazwę projektu w wyznaczonym polu tekstowym po wybraniu lokalizacji pliku. Następnie, jak pokazano w przykładzie poniżej, wybierz wymaganą .NET Framework, klikając przycisk Utwórz.

Następnie wybrana aplikacja zdecyduje, jak będzie zorganizowany projekt Visual Studio. Wystarczy otworzyć plik program.cs, aby rozpocząć dodawanie kodu do aplikacji i jej budowanie. Możesz używać Windows, konsoli lub aplikacji internetowych.
Po tym można dodać bibliotekę i przetestować 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, zapisując wszystkie logi oraz ich ważność na liście.
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 logów są generowane z Prism Logging. Używamy narzędzia Kiwi Syslog Service Manager do monitorowania logów Prism.
Plik wyjściowy logu Prism

Operacje logów Prism
Rozszerzalne logowanie
Możliwości Prism.Plugin.Logging są rozszerzane poprzez logowanie, co zapewnia więcej funkcjonalności i elastyczności. Oferuje szereg opcji konfiguracji w celu dostosowania poziomów logów, celów logowania i innych zmiennych do potrzeb logowania twojej aplikacji.
Wiele celów logowania
Z Prism.Plugin.Logging możesz kierować komunikaty logów do różnych lokalizacji, w tym konsoli, plików, baz danych i innych usług logowania. Dzięki takiej elastyczności możesz wybrać najlepsze cele logowania dla wymagań i środowiska twojej aplikacji.
Niestandardowi logerzy
Z pluginem można zaimplementować interfejs ILoggerFacade Prism do konstruowania niestandardowych logerów. Pozwala to konstruować niestandardowe funkcje logowania w oparciu o potrzeby twojej aplikacji lub integrację z frameworkami logowania firm trzecich.
Tworzenie logów z Prism Logs
Logi Prism mogą być łatwo tworzone przy użyciu kilku linii 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
Używanie Prism i IronPDF razem
Łączenie Prism z IronPDF w projekcie C# otwiera ciekawe możliwości. IronPDF to świetne narzędzie do konwertowania tej zawartości na pliki PDF, podczas gdy Prism to doskonałe narzędzie do pracy z logami. Programiści mogą tworzyć aplikacje, które zapisują dane do zaprojektowanego na zamówienie dokumentu PDF dzięki tej łączności.
Prism Logging wraz z IronPDF
Tworząc aplikację konsolową Windows, która wykorzystuje Prism Logs, użytkownicy mogą korzystać z logów w ramach programu. Ten kontroler powinien zmieścić się w konsoli, pozostawiając dużo miejsca na tworzenie logów. Dodaj operacje logów serwera i logi HTTP.
Zainstaluj IronPDF
- Otwórz projekt Visual Studio.
-
Wybierz "Narzędzia" > "Menedżer pakietów NuGet" > "Konsola menedżera pakietów".
- W Konsoli Menedżera Pakietów wpisz następującą komendę i naciśnij Enter:
Install-Package IronPdf
- Inna metoda instalacji IronPDF to skorzystanie z Menedżera Pakietów NuGet dla Rozwiązania.
- 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 NuGet
Odwiedź stronę IronPDF pod adresem https://www.nuget.org/packages/IronPdf na stronie NuGet, aby dowiedzieć się więcej o funkcjach IronPDF, kompatybilności 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 pobrać plik ZIP zawierający DLL, kliknij ten link. Po rozpakowaniu pliku dodaj bibliotekę DLL do swojego projektu.
Implementacja logiki
- Konfiguracja renderera i loggera: Oprogramowanie konfiguruje renderer IronPDF i logger Prism.
- Logowanie komunikatów: Komunikaty z określoną kategorią 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 wystąpiły podczas wykonywania aplikacji.
- Stosowanie logiki: Część logiki aplikacji jest symulowana przez metodę PerformApplicationLogic(). Aby zilustrować logowanie błędów, produkuje on jedynie komunikat i wywołuje wyjątek w tym przypadku.
- Tworzenie raportu logu PDF: Po wykonaniu logiki aplikacji, oprogramowanie tworzy dokument HTML na podstawie zapisanych komunikatów. Następnie korzysta z funkcji RenderHtmlAsPdf() IronPDF, aby przekształcić dokument HTML w plik logu w formie raportu PDF. Plik PDF jest następnie zapisywany na dysku.
Rozszerzając wcześniej 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 logów wygenerowanego z IronPDF

Aby dowiedzieć się więcej o przykładach kodu IronPDF, odwiedź stronę przykładów.
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 wieczystą licencję na Lite bundle, która obejmuje stałą licencję, rok utrzymania oprogramowania oraz aktualizacje biblioteki. IronPDF oferuje bezpłatną licencję do celów deweloperskich, podlegającą ograniczeniom czasowym i redystrybucyjnym. Aby zdobyć bezpłatną wersję próbną. Aby dowiedzieć się więcej o różnych produktach Iron Software, odwiedź stronę Iron Software.
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.




