Zum Fußzeileninhalt springen
.NET HILFE

Prism Logging (Funktionsweise für Entwickler)

Konsolenanwendungen erfordern trotz fehlender grafischer Benutzeroberfläche häufig robuste Protokollierungsmechanismen, um Fehler zu verfolgen, die Anwendungsleistung zu überwachen und Probleme effizient zu debuggen. Prism.Plugin.Logging, eine Erweiterung des Prism Logging Frameworks, bietet eine umfassende Protokollierungslösung für .NET-Anwendungen, einschließlich Unterstützung für verschiedene Logdienstanbieter.

In diesem Artikel untersuchen wir, wie man Prism Logging in Konsolenanwendungen mit IronPDF, einer leistungsstarken .NET-Bibliothek zur Arbeit mit PDF-Dokumenten, integriert. Durch die Kombination dieser Werkzeuge können Entwickler erweiterte Protokollierungsfunktionen in ihren Konsolenanwendungen implementieren, was die Wartbarkeit und Fehlerbehebung verbessert.

Einführung in die Prism-Protokollierung

Prism.Plugin.Logging erweitert Prism, ein beliebtes Framework zum Erstellen von XAML-Anwendungen, indem es umfassende Protokollierungskapazitäten bereitstellt. #### Beispiel mit beiden Schritten

Vorteile der Verwendung von Prism Logging

Flexible Logkonfiguration: Prism.Plugin.Logging ermöglicht es Entwicklern, verschiedene Loganbieter nahtlos zu konfigurieren, einschließlich beliebter Optionen wie NLog, Serilog und Microsoft.Extensions.Logging.

Strukturierte Logunterstützung: Entwickler können strukturierten Daten mit ihren Nachrichten unter Verwendung von Prism.Plugin.Logging protokollieren. Diese Funktion ist besonders hilfreich in Szenarien mit Konsolenanwendungen, bei denen umfassende Kontextdaten, einschließlich Zeitstempel, Fehlercodes oder Benutzeraktivitäten, aufgezeichnet und den von IronPDF erstellten Logberichten hinzugefügt werden müssen.

Verwendung der Prism-Protokollierung

  1. Erstellen Sie ein neues C#-Projekt
  2. Installieren Sie das Prism-Logging-Paket.
  3. Erstellen Sie ein Objekt für den SyslogLogger und übergeben Sie die Konfiguration als Parameter.
  4. Rufen Sie die Logmethode bei Bedarf auf und übergeben Sie die Lognachricht und das Loglevel.
  5. Löschen Sie das Logobjekt am Ende.

Einstieg mit Prism Logs

Einrichten von Prism in C#-Projekten

Die Integration von Prism in ein C#-Projekt ist einfach. Die Nutzung von NuGet, dem .NET-Paketmanager von Microsoft, ist erforderlich, um Prism hinzuzufügen. Die Werkzeuge und Bibliotheken, die benötigt werden, um Prism Logs in Ihre Projekte zu integrieren, werden von dieser Bibliothek bereitgestellt.

Prism Logging (Funktionsweise für Entwickler): Abbildung 1 - Installieren Sie Prism mit dem Manage NuGet Packages for Solution-Dialog, indem Sie im Suchfeld des NuGet-Paketmanagers nach Prism.Plugin.Logging.Loggly suchen, dann das Projekt auswählen und auf die Schaltfläche Installieren klicken.

Implementierung von Prism in Dot.NET-Anwendungen

Prism ist mit verschiedenen Dot .NET-Anwendungstypen kompatibel, einschließlich Windows Forms (WinForms) und Windows Console. Obwohl jedes Framework anders implementiert ist, bleibt das Grundkonzept das gleiche und hilft uns, die datenbezogenen Daten Ihrer Anwendung zu protokollieren.

Erstellen eines neuen Projekts in Visual Studio

Wählen Sie das Menü "Datei" in der Visual Studio-Anwendung. Klicken Sie auf "Neues Projekt", wählen Sie dann "Konsolenanwendung".

Prism Logging (Funktionsweise für Entwickler): Abbildung 2 - Öffnen Sie Visual Studio und wählen Sie Neues Projekt - Wählen Sie Konsolen-App.

Geben Sie den Projektnamen im vorgesehenen Textbereich ein, nachdem Sie den Dateispeicherort ausgewählt haben. Wählen Sie dann, wie unten gezeigt, das erforderliche .NET Framework, indem Sie auf die Schaltfläche "Erstellen" klicken.

Prism Logging (Funktionsweise für Entwickler): Abbildung 3 - Konfigurieren Sie Ihr Projekt, indem Sie den gewünschten Projektnamen und -standort angeben. Wählen Sie das entsprechende .NET Framework für Ihr Projekt aus und klicken Sie auf die Schaltfläche Erstellen.

Die gewählte Anwendung wird dann bestimmen, wie das Visual Studio-Projekt organisiert ist. Öffnen Sie einfach die Datei program.cs, um mit dem Hinzufügen von Code zur Anwendung zu beginnen und diese zu erstellen. Sie können Windows, die Konsole oder die Webanwendung nutzen.

Danach kann die Bibliothek hinzugefügt und der Code getestet werden.

Ein grundlegendes Beispiel für die Verwendung von Prism Logs

Im untenstehenden Codebeispiel initialisieren wir das Prism-Logobjekt und fügen dann nacheinander verschiedene Loglevels zu den Prism-Logs hinzu und speichern alle Logs und deren Wichtigkeit in einer Liste.

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; }
        }
    }
}
$vbLabelText   $csharpLabel

Prism Logging generiert Logberichte. Wir verwenden ein Tool namens Kiwi Syslog Service Manager, um die Prism-Logs zu überwachen.

Prisma-Protokolldatei ausgeben

Prism Logging (Funktionsweise für Entwickler): Abbildung 4 - Überwachung der generierten Prism-Logberichte mit dem Tool Kiwi Syslog Service Manager.

Prism Logs Operationen

Erweiterbare Protokollierung

Die Funktionen von Prism.Plugin.Logging werden durch Protokollierung erweitert, was mehr Funktionalität und Flexibilität bietet. Es bietet eine Reihe von Konfigurationsoptionen, um Logebenen, Logziele und andere Variablen an die Loganforderungen Ihrer Anwendung anzupassen.

Mehrere Log-Ziele

Mit Prism.Plugin.Logging können Sie Lognachrichten an verschiedene Orte senden, einschließlich der Konsole, Dateien, Datenbanken und anderen Loggingdiensten. Dank dieser Flexibilität können Sie die besten Protokollierungsziele für die Anforderungen und die Umgebung Ihrer Anwendung auswählen.

Benutzerdefinierte Logger

Mit dem Plugin können Sie das ILoggerFacade-Interface von Prism implementieren, um benutzerdefinierte Logger zu erstellen. So können Sie benutzerdefinierte Protokollierungsfunktionen basierend auf den Bedürfnissen Ihrer Anwendung erstellen oder sich mit Drittanbieter-Logging-Frameworks integrieren.

Protokoll mit Prism Logs erstellen

Prism-Logs können einfach mit wenigen Codezeilen erstellt werden. Unten ist das Beispiel, um ein Log zu erstellen.

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);
$vbLabelText   $csharpLabel

Integration von Prism Logging und IronPDF

Prisma und IronPDF gemeinsam verwenden

Die Kombination von Prism mit IronPDF in einem C#-Projekt eröffnet einige spannende Möglichkeiten. IronPDF ist ein fantastisches Werkzeug, um diesen Inhalt in PDFs umzuwandeln, obwohl Prism ein großartiges Werkzeug zur Arbeit mit Logs ist. Programmierer können Apps erstellen, die den Artikel in ein benutzerdefiniertes PDF-Dokument loggen, dank dieser Konnektivität.

Prism-Protokollierung mit IronPDF

Durch das Erstellen einer Windows-Konsolenanwendung, die Prism-Logs verwendet, können Nutzer mit den Logs innerhalb Ihres Programms interagieren. Diese Steuerung sollte auf der Konsole mit viel Platz für Logs passen. Fügen Sie Serverprotokolloperationen und HTTP-Logs hinzu.

IronPDF installieren

  • Öffnen Sie das Visual Studio-Projekt.
  • Wählen Sie "Tools" > "NuGet-Paket-Manager" > "Paket-Manager-Konsole".

    • Geben Sie im Paketmanager-Konsolenfenster den folgenden Befehl ein und drücken Sie Enter:
    Install-Package IronPdf
  • Eine andere Möglichkeit, IronPDF zu installieren, ist die Nutzung des "NuGet Package Manager for Solutions".
  • Durchsuchen Sie das IronPDF-Paket in den Suchergebnissen, wählen Sie es aus, und klicken Sie dann auf die Schaltfläche "Installieren". Visual Studio kümmert sich automatisch um den Download und die Installation.

Prism Logging (Funktionsweise für Entwickler): Abbildung 5 - Installieren Sie IronPDF mit Manage NuGet Packages for Solution durch Suche nach IronPDF im Suchfeld des NuGet-Paketmanagers, dann wählen Sie das Projekt aus und klicken auf die Schaltfläche Installieren.

  • NuGet lädt und installiert das IronPDF-Paket und alle Abhängigkeiten, die für Ihr Projekt erforderlich sind.
  • Sobald IronPDF installiert ist, können Sie es in Ihrem Projekt verwenden.

Installation über die NuGet-Website

Besuchen Sie die IronPDF-Seite unter https://www.nuget.org/packages/IronPdf auf der NuGet-Website, um mehr über die Funktionen, die Kompatibilität und andere Download-Optionen von IronPDF zu erfahren.

DLL zum Installieren verwenden

Alternativ können Sie IronPDF direkt in Ihr Projekt integrieren, indem Sie seine DLL-Datei verwenden. Um die ZIP-Datei mit der DLL herunterzuladen, klicken Sie auf diesen Link. Sobald es entpackt wurde, fügen Sie die DLL in Ihr Projekt ein.

Implementierung der Logik

  • Einrichten des Renderers und Loggers: Die Software richtet den IronPDF-Renderer und den Prism-Logger ein.
  • Protokollierung von Meldungen: Meldungen mit einer festgelegten Kategorie und Priorität können mithilfe der Methode MessageLog() protokolliert werden. In diesem Beispiel protokollieren wir die Start- und Endnachrichten der Anwendung sowie alle Ausnahmen, die während der Ausführung der Anwendung auftreten.
  • Anwenden der Logik: Ein Teil der Anwendungslogik wird durch die Methode PerformApplicationLogic() simuliert. Um die Fehlerprotokollierung zu veranschaulichen, erzeugt sie lediglich eine Nachricht und löst in diesem Fall eine Ausnahme aus.
  • Erstellen eines PDF-Logberichts: Nach der Ausführung der Anwendungslogik erstellt die Software ein HTML-Dokument basierend auf den aufgezeichneten Nachrichten. Dann verwendet es die IronPDF-Funktion RenderHtmlAsPdf(), um das HTML-Dokument in eine Logdatei als PDF-Bericht zu transformieren. Die PDF-Datei wird dann auf die Festplatte gespeichert.

Erweiterung des zuvor definierten Codes, um IronPDF-Code zu integrieren:

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

Unten ist der Bild-Logbericht, der von IronPDF erstellt wurde

Prism Logging (Funktionsweise für Entwickler): Abbildung 6 - Ausgabe-PDF generiert mit IronPDF und Daten aus Prism Log Report.

Um mehr über die IronPDF-Code-Referenzen zu erfahren, schauen Sie bitte hier.

Abschluss

Prism.Plugin.Logging-Integration mit IronPDF ermöglicht es Entwicklern, umfassende Protokollierungsfunktionen einfach in Terminal-Apps zu integrieren. Entwickler können die allgemeine Programmwartung verbessern, die Debugging-Funktionen optimieren und die Protokollierungsoperationen beschleunigen, indem sie die Funktionen beider Tools nutzen. Prism.Plugin.Logging ermöglicht es Konsolenanwendungen, eine vollständige Protokollabdeckung zu erhalten und dabei starke Überwachungs- und Fehlerbehebungsfähigkeiten zu gewährleisten, mit der richtigen Implementierung und Einrichtung.

IronPDF bietet eine unbefristete Lizenz eines Lite-Pakets, die eine unbefristete Lizenz, ein Jahr Softwarewartung und ein Upgrade der Bibliothek umfasst. IronPDF bietet für Entwicklungszwecke kostenlose Lizenzen, unterliegt jedoch Einschränkungen hinsichtlich Zeit und Weiterverteilung. Um die kostenlose Testversion zu erwerben. Um mehr über die verschiedenen Iron Software-Produkte zu erfahren, besuchen Sie bitte den Website-Link.

Häufig gestellte Fragen

Wie kann ich Protokollierung in eine .NET-Konsolenanwendung integrieren?

Sie können die Protokollierung in eine .NET-Konsolenanwendung integrieren, indem Sie Prism.Plugin.Logging verwenden, das verschiedene Protokollierungsanbieter unterstützt und ein strukturiertes Protokollierungsframework bietet. Um es einzurichten, installieren Sie das Prism-Protokollierungspaket, erstellen die erforderlichen Protokollierungsobjekte und konfigurieren Ihre Protokollierungsziele und -ebenen.

Welche Vorteile bietet die Kombination von Prism Logging mit IronPDF?

Die Kombination von Prism Logging mit IronPDF ermöglicht es Ihnen, PDF-Protokollberichte zu erstellen, was die Wartung und Fehlersuche bei Anwendungen verbessert. IronPDF kann HTML-Protokollinhalte in PDF-Dokumente umwandeln und bietet so ein portables Format zum Überprüfen und Teilen von Protokollen.

Wie kann ich Protokolldaten in ein PDF-Dokument in .NET umwandeln?

Um Protokolldaten in ein PDF-Dokument in .NET umzuwandeln, verwenden Sie IronPDF, um Ihre Protokolldaten als HTML zu rendern und dann mit Methoden wie RenderHtmlAsPdf in ein PDF zu konvertieren. So können Sie detaillierte und portable Protokollberichte erstellen.

Welche Protokollierungsanbieter sind mit Prism.Plugin.Logging kompatibel?

Prism.Plugin.Logging ist mit mehreren Protokollierungsanbietern kompatibel, darunter NLog, Serilog und Microsoft.Extensions.Logging. Diese Flexibilität ermöglicht es Entwicklern, den Protokollierungsanbieter zu wählen, der am besten zu den Anforderungen ihres Projektes passt.

Wie richte ich ein Prism-Logging-Projekt in Visual Studio ein?

Um ein Prism-Protokollierungsprojekt in Visual Studio einzurichten, erstellen Sie ein neues C#-Projekt, installieren das Prism-Protokollierungspaket mit dem NuGet-Paket-Manager und initialisieren das Protokollierungsframework, indem Sie ein SyslogLogger-Objekt erstellen und Protokollebene und -ziele konfigurieren.

Kann Prism.Plugin.Logging für benutzerdefinierte Protokollierungskonfigurationen verwendet werden?

Ja, Prism.Plugin.Logging unterstützt benutzerdefinierte Protokollierungskonfigurationen. Sie können Protokollebenen anpassen, benutzerdefinierte Logger definieren und Protokollmeldungen an verschiedene Ziele weiterleiten, wodurch eine maßgeschneiderte Protokollierungslösung entsteht, die den spezifischen Anforderungen der Anwendung entspricht.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen