如何在 C# 中使用自訂日誌記錄
C# 中的自訂日誌記錄功能可讓您實作客製化的日誌記錄系統,以擷取特定於應用程式的事件和訊息。 使用IronPDF,您可以將 LoggingMode 設定為 Custom 並且指派您的日誌記錄器實現,將所有 PDF 處理日誌重新導向至您的自訂日誌記錄器。 此功能可讓您將 IronPDF 的詳細日誌輸出與您現有的日誌基礎架構集成,無論您使用的是 NLog、Serilog、log4net 還是自訂解決方案。
當您需要集中管理來自多個元件的日誌、套用自訂格式、按嚴重程度篩選或將日誌路由到特定目標(例如檔案、資料庫或監控服務)時,自訂日誌記錄非常有用。 透過使用IronPDF實現自訂日誌記錄,您可以完全控制應用程式中 PDF 產生和處理事件的追蹤方式。
快速入門:使用IronPDF實現自訂日誌記錄
首先使用IronPDF在 C# 中進行自訂日誌記錄。 本指南展示如何將 LoggingMode 設定為 Custom 並將其與您的日誌記錄器類別連結。 將IronPDF訊息直接傳送到您的自訂日誌記錄器,以監控和管理應用程式日誌。 設定簡單,可增強應用程式的日誌記錄功能。 如需全面了解 IronPDF 的功能,請參閱我們的快速入門指南。
最簡工作流程(5個步驟)
- 從NuGet下載IronPDF
- 將**`LoggingMode`**屬性設定為`LoggingModes.Custom`
- 將**`CustomLogger`**屬性指派給您的自訂日誌記錄器對象
- 所有日誌訊息都將轉送到自訂日誌記錄器。
- 輸出日誌訊息以查看日誌
如何實作自訂日誌記錄範例?
若要使用自訂日誌記錄,請將LoggingMode屬性變更為LoggingModes.Custom 。 然後將CustomLogger屬性指派給您的自訂日誌記錄器類別。 這樣可以靈活地與各種日誌框架集成,並在整個應用程式中保持一致的日誌模式。
此實現方案只需極少的設定。配置完成後,所有IronPDF操作(包括 HTML 轉 PDF、PDF 編輯和渲染)都會自動透過您的自訂日誌記錄器傳送日誌訊息。 此整合可確保您擷取有關 PDF 處理操作的關鍵資訊。
為什麼我應該在IronPDF中使用自訂日誌記錄?
:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging.cs
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
IronSoftware.Logger.CustomLogger = new CustomLoggerClass("logging");
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom
IronSoftware.Logger.CustomLogger = New CustomLoggerClass("logging")
IronPDF日誌將導向至自訂日誌記錄器物件。 這些訊息與IronPDF日誌記錄器中的訊息完全相同; 它們被轉發到自訂日誌記錄器。 自訂日誌記錄器的實作決定瞭如何處理訊息。 請參考以下自訂日誌記錄器類別範例。
自訂日誌記錄為生產應用提供了以下幾個優勢:
-集中式日誌管理:將IronPDF日誌與您現有的日誌基礎架構集成 -增強調試功能:捕獲有關 PDF 操作的詳細資訊以進行故障排除 -效能監控:追蹤渲染時間和資源使用情況 -錯誤追蹤:自動擷取並報告 PDF 產生失敗情況 -合規性:在受監管行業中維護文件產生的審計跟踪
對於需要非同步處理的應用,自訂日誌記錄有助於追蹤並發的 PDF 操作並識別潛在的瓶頸。
自訂日誌記錄器類別是什麼樣的?
:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging-class.cs
public class CustomLoggerClass : ILogger
{
private readonly string categoryName;
public CustomLoggerClass(string categoryName)
{
this.categoryName = categoryName;
}
public IDisposable BeginScope<TState>(TState state)
{
return null;
}
public bool IsEnabled(LogLevel logLevel)
{
return true;
}
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
if (!IsEnabled(logLevel))
{
return;
}
// Implement your custom logging logic here.
string logMessage = formatter(state, exception);
// You can use 'logLevel', 'eventId', 'categoryName', and 'logMessage' to log the message as needed.
// For example, you can write it to a file, console, or another destination.
// Example: Writing to the console
Console.WriteLine($"[{logLevel}] [{categoryName}] - {logMessage}");
}
}
Public Class CustomLoggerClass
Implements ILogger
Private ReadOnly categoryName As String
Public Sub New(ByVal categoryName As String)
Me.categoryName = categoryName
End Sub
Public Function BeginScope(Of TState)(ByVal state As TState) As IDisposable
Return Nothing
End Function
Public Function IsEnabled(ByVal logLevel As LogLevel) As Boolean
Return True
End Function
Public Sub Log(Of TState)(ByVal logLevel As LogLevel, ByVal eventId As EventId, ByVal state As TState, ByVal exception As Exception, ByVal formatter As Func(Of TState, Exception, String))
If Not IsEnabled(logLevel) Then
Return
End If
' Implement your custom logging logic here.
Dim logMessage As String = formatter(state, exception)
' You can use 'logLevel', 'eventId', 'categoryName', and 'logMessage' to log the message as needed.
' For example, you can write it to a file, console, or another destination.
' Example: Writing to the console
Console.WriteLine($"[{logLevel}] [{categoryName}] - {logMessage}")
End Sub
End Class
此實現遵循標準的 Microsoft.Extensions.Logging.ILogger 接口,使其與.NET日誌記錄生態系統相容。 日誌記錄器類別包括:
-類別名稱:有助於識別日誌訊息的來源
-日誌等級篩選:控制要擷取的嚴重等級。
-靈活輸出:將日誌路由到任何目標位置(控制台、檔案、資料庫等)
-異常處理:正確格式化並記錄異常詳情
-狀態管理:支援使用 BeginScope 進行結構化日誌記錄
對於進階場景,請探索影響日誌輸出的渲染選項,尤其是在處理複雜的 HTML 轉換或使用Chrome 渲染引擎時。
自訂日誌輸出是什麼樣的?
在這個例子中,日誌訊息前面會加入附加資訊。
控制台輸出展示了自訂日誌記錄如何提供有關 IronPDF 內部操作的詳細資訊。 你可以看到:
- Chrome 用戶端初始化步驟
- 建立部署候選對象
- 本機庫載入序列
- 元件部署成功確認
這種細節等級在偵錯 PDF 生成問題或優化效能時非常有價值。 結構化的格式使得以程式設計方式解析日誌或與日誌分析工具整合變得容易。
自訂日誌記錄實施的最佳實踐
在使用IronPDF實作自訂日誌記錄時,請考慮以下最佳實務:
1.使用適當的日誌等級:配置日誌記錄器,使其擷取合適的詳細級別,同時避免佔用過多的日誌儲存空間。 2.新增上下文資訊:新增請求 ID、使用者資訊或交易詳情,以關聯 PDF 操作 3.處理敏感資料:確保您的日誌記錄器不會洩漏 PDF 內容中的機密資訊。 4.監控效能:追蹤 PDF 生成時間,以發現最佳化機會 5.設定警報:配置關鍵錯誤或效能下降的通知
對於生產環境部署,尤其是在使用許可證金鑰時,正確的日誌記錄可以確保平穩運行並快速解決問題。
常見日誌問題排查
如果您在使用自訂日誌記錄時遇到問題:
- 驗證您的日誌記錄器是否正確實現了
ILogger接口 - 在執行任何IronPDF操作之前,請檢查是否已設定
LoggingMode。 - 確保您的日誌記錄器對於並發操作是線程安全的
- 如果要寫入檔案或外部系統,請檢查日誌權限
如需更多故障排除資源,請參閱我們的故障排除指南或瀏覽API 參考文檔,以了解有關日誌記錄屬性和方法的詳細文檔。
準備好要看看你還能做什麼了嗎? 請造訪我們的教學頁面:附加功能
常見問題解答
什麼是 C# 自訂日誌,以及如何與 PDF 處理搭配使用?
使用 IronPDF 的 C# 自訂日誌功能可讓您實現量身打造的日誌系統,捕捉 PDF 處理事件和訊息。透過將 LoggingMode 設定為 Custom 並指定您的記錄器實作,IronPDF 會將所有 PDF 產生與處理記錄重定向至您的自訂記錄器,讓您能與 NLog、Serilog 或 log4net 等現有記錄基礎架構整合。
如何啟用 PDF 作業的自訂記錄?
若要啟用 IronPDF 的自訂記錄功能,請將 IronSoftware.Logger.LoggingMode 設定為 LoggingModes.Custom,並將您的自訂記錄器類別指定給 IronSoftware.Logger.CustomLogger。配置完成後,所有 IronPDF 作業(包括 HTML 至 PDF 轉換和 PDF 操作)都會自動透過您的自訂記錄器傳送記錄訊息。
為 PDF 生成實作自訂日誌有哪些好處?
IronPDF 的自訂記錄功能可完全控制 PDF 處理事件的追蹤方式。它可讓您集中處理來自多個元件的日誌、套用自訂格式、依嚴重程度過濾,以及將日誌路由至特定目的地(如檔案、資料庫或監控服務),進而強化應用程式的日誌功能。
我可以將 PDF 處理日誌與現有的日誌框架整合嗎?
是的,IronPDF 的自定義日誌功能可與流行的日誌框架(包括 NLog、Serilog、log4net 或任何自定義日誌解決方案)無縫整合。這可確保您的應用程式具有一致的日誌模式,同時擷取 PDF 處理作業的關鍵資訊。
實作自訂記錄的最基本工作流程是什麼?
最低限度的工作流程包括 5 個步驟:從 NuGet 下載 IronPDF,將 LoggingMode 設定為 LoggingModes.Custom,將 CustomLogger 指派給您的自訂記錄器物件,所有記錄訊息將會轉寄給您的自訂記錄器。最後,輸出日誌訊息以檢視 IronPDF 作業的日誌。

