在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
控制台應用程序儘管缺乏圖形使用者介面,但通常需要穩健的日誌機制來追蹤錯誤、監控應用程式性能,並有效地調試問題。 Prism.Plugin.Logging,作為Prism Logging框架的擴展,為.NET應用程序提供了全面的日誌記錄解決方案,包括支援各種日誌記錄提供者。
在本文中,我們探討如何將 Prism Logging 集成到控制台應用程式中,使用IronPDF,強大的 .NET 庫,用於處理 PDF 文件。 通過結合這些工具,開發人員可以在他們的控制臺應用程序中實現先進的日誌功能,從而增強維護和故障排除能力。
Prism.Plugin.Logging擴展了 Prism(這是一個流行的 XAML 應用程式框架),提供全面的日誌功能。 Prism.Plugin.Logging 支援多個記錄提供者,如 NLog、Serilog 和 Microsoft.Extensions.Logging,提供靈活性和自訂選項以滿足各種應用程式需求。
靈活的日誌配置: Prism.Plugin.Logging 允許開發者無縫配置各種日誌提供者,包括像 NLog、Serilog 和 Microsoft.Extensions.Logging 等受歡迎的選擇。
結構化日誌支持: 開發人員可以使用 Prism.Plugin.Logging 與其消息記錄結構化數據。 此功能特別在需要記錄完整上下文資料(如時間戳記、錯誤代碼或使用者活動)的控制台應用程式中非常有用,並添加至IronPDF生成的日誌報告。
建立一個新的 C# 專案
安裝 Prism 日誌記錄套件。
為 SyslogLogger 創建一個物件並將配置作為參數傳遞。
在需要時調用日誌方法,並傳遞日誌消息和日誌級別。
在 C# 專案中整合 Prism 很簡單。 使用 NuGet(Microsoft 的 .NET 套件管理器)是添加 Prism 所必需的。 此庫提供將 Prism Logs 整合到您的專案所需的工具和函式庫。
Prism 與多種 .NET 應用程式類型相容,包括 Windows Forms(WinForms)和 Windows 控制台。 雖然每個框架的實現方式不同,但基本概念始終相同,協助我們記錄與您的應用程序相關的數據。
在 Visual Studio 應用程式中選擇「檔案」選單。 點擊「新專案」,然後選擇「控制台應用程式」。
在選定檔案位置後,在指定的文本區域輸入專案名稱。 然後,按照下面的範例所示,點擊「Create」按鈕以選擇必要的 .NET Framework。
所選應用程式將決定 Visual Studio 專案的組織方式。 只需打開 program.cs 文件即可開始向應用程式新增程式碼並進行構建。 您可以使用 Windows、控制台或網路應用程式。
之後,可以添加庫並測試代碼。
在以下的程式碼範例中,我們啟動了 prism log 物件,然後依次將不同的記錄層級添加到 Prism 記錄中,並將所有記錄和重要性保存到一個列表中。
using Prism.Logging.Syslog;
class Program
{
public class Demo
{
public string name { get; set; }
public int age { get; set; }
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 started.", Prism.Logging.Syslog.Level.Information);
}
static void PerformApplicationLogic()
{
// Example application logic
Console.WriteLine("Performing application logic...");
// Simulate error
try
{
throw new Exception();// This will throw an exception
}
catch (Exception ex)
{
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
}
}
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;
class Program
{
public class Demo
{
public string name { get; set; }
public int age { get; set; }
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 started.", Prism.Logging.Syslog.Level.Information);
}
static void PerformApplicationLogic()
{
// Example application logic
Console.WriteLine("Performing application logic...");
// Simulate error
try
{
throw new Exception();// This will throw an exception
}
catch (Exception ex)
{
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
}
}
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; }
}
}
}
日誌報告由 Prism Logging 生成。 我們正在使用一個名為 Kiwi Syslog Service Manager 的工具來監控 prism 日誌。
Prism.Plugin.Prism 的日誌功能透過 logging 擴展,提供了更多的功能性和靈活性。 它提供多種配置選項來調整日誌級別、日誌目標和其他變數,以滿足您的應用程式的日誌記錄需求。
使用 Prism.Plugin.Logging,您可以將日誌訊息路由到各種位置,包括控制台、文件、資料庫和其他日誌服務。 由於這種彈性,您可以根據應用程式的需求和環境選擇最佳的日誌記錄目標。
使用該插件,您可以實作 Prism 的 ILoggerFacade 介面來構建自定義日誌記錄器。 這讓您可以根據應用程式的需求構建自定義日誌功能,或與第三方日誌框架進行介接。
只需幾行程式碼即可輕鬆創建Prism日誌。 以下是創建日誌的範例。
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log(Message, _level);
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log(Message, _level);
結合Prism與IronPDF在 C# 專案中開啟了一些令人興奮的可能性。 IronPDF 是一個很棒的工具,可以將這些內容轉換為 PDF,儘管 Prism 是處理日誌的好工具。 由於此連接性,程式設計師可以創建將項目記錄到自定義設計的 PDF 文件的應用程式。
透過創建一個使用 Prism Logs 的 Windows 控制台應用程式,用戶可以在您的程式中與 Logs 互動。 此控制項應該可以輕鬆放置在控制台上,並留有充足的空間以進行記錄。 添加伺服器日誌操作和 HTTP 日誌。
選擇「工具」>「NuGet 套件管理器」>「套件管理員主控台」。
Install-Package IronPdf
安裝 IronPDF 的另一種方式是使用 NuGet 套件管理器解決方案。
請訪問 NuGet 網站的 IronPDF 頁面 https://www.nuget.org/packages/IronPdf 以瞭解更多關於 IronPDF 的功能、兼容性和其他下載選項。
或者,您可以通過使用 IronPDF 的 DLL 文件直接將其集成到您的項目中。要下載包含該 DLL 的 ZIP 文件,請點擊此處連結. 一旦解壓縮後,將 DLL 包含到您的專案中。
創建 PDF 日誌報告: 執行應用程序邏輯後,軟體會根據記錄的訊息生成 HTML 文件。 然後使用IronPDF的RenderHtmlAsPdf() 將 HTML 文件轉換為 PDF 報告的日誌文件功能。 然後將 PDF 檔案儲存至磁碟。
擴展先前定義的程式碼以整合IronPDF程式碼:
using IronPdf;
static void GeneratePdfLogReport(ChromePdfRenderer Renderer)
{
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>{log.message}:</strong> {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(ChromePdfRenderer Renderer)
{
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>{log.message}:</strong> {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}");
}
以下是由 IronPDF 生成的圖像日誌報告
若要了解更多關於 IronPDF 程式碼參考的資訊,請參考這裡.
Prism.Plugin.Logging集成與IronPDF允許開發人員輕鬆將廣泛的日誌功能集成到終端應用程式中。開發人員可以通過利用這兩個工具的功能來改進整體程序維護、優化除錯能力並加速日誌操作。 Prism.Plugin.Logging 使控制台應用程式能夠獲得完整的日誌覆蓋,確保穩健的監控和故障排除功能,前提是正確的實施和設置。
IronPDF 提供一個 perpetual license 的 $749 Lite 套裝,它包含永久許可證、一年的軟體維護以及庫的升級。 IronPDF 提供免費的開發許可,但受時間和重發限制。 獲得免費試用. 如需了解更多有關 Iron Software 各種產品的資訊,請訪問他們的網站連結