C#でカスタムロギングを使用する方法

C# でカスタムログを使用する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

C#のカスタムロギングを使用すると、アプリケーション固有のイベントやメッセージをキャプチャするカスタマイズされたロギングシステムを実装することができます。 IronPDFでは、 LoggingModeCustom に設定し、ロガー実装を割り当てることで、すべての PDF 処理ログをカスタム ロガーにリダイレクトできます。 この機能により、NLog、Serilog、log4net、またはカスタムソリューションを使用している場合でも、IronPdfの詳細なロギング出力を既存のロギングインフラストラクチャと統合することができます。

カスタムロギングは、複数のコンポーネントからのログを一元化したり、カスタムフォーマットを適用したり、重大度レベルでフィルタリングしたり、ファイル、データベース、監視サービスなどの特定の宛先にログをルーティングしたりする必要がある場合に有用です。 IronPdfでカスタムロギングを実装することで、PDFの生成と処理イベントがアプリケーション内でどのように追跡されるかを完全にコントロールすることができます。

クイックスタート: IronPDFでカスタム ログを実装する

IronPDFを使ってC#でカスタムロギングを始めましょう。 このガイドでは、LoggingModeCustom に設定し、それをロガー クラスにリンクする方法を説明します。 アプリケーションのログを監視・管理するために、IronPDFメッセージをカスタムロガーに直接送ることができます。 セットアップは簡単で、アプリケーションのログ機能を強化します。 IronPDFの機能の包括的な概要については、クイックスタートガイドをご覧ください。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  2. このコード スニペットをコピーして実行します。

    IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
    IronSoftware.Logger.CustomLogger = new MyCustomLogger();
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル

    arrow pointer


カスタムログの例を実装するにはどうすればよいですか?

カスタムロギングを使用するには、LoggingModeプロパティをLoggingModes.Customに変更してください。 次に、CustomLogger プロパティをカスタム ロガー クラスに割り当てます。 これは、さまざまなロギングフレームワークと統合するための柔軟性を提供し、アプリケーション全体で一貫したロギングパターンを維持します。

実装には最小限のセットアップしか必要ありません。一旦設定されると、HTMLからPDFへの変換、PDFの操作、レンダリングを含むすべてのIronPDFの操作は自動的にカスタムロガーを通してログメッセージを送信します。 この統合により、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")
$vbLabelText   $csharpLabel

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

この実装は標準の Microsoft.Extensions.Logging.ILogger インターフェイスに準拠しており、 .NETログ記録エコシステムと互換性があります。 ロガークラスには以下が含まれます:

  • カテゴリ名: ログメッセージのソースを識別するのに役立ちます。
  • ログレベルのフィルタリング:キャプチャする重大度レベルを制御する
  • 柔軟な出力:任意の宛先(コンソール、ファイル、データベースなど)にログをルーティングします。
  • 例外処理:例外の詳細を適切にフォーマットし、ログに記録する -状態管理: BeginScope による構造化ログのサポート

高度なシナリオについては、特に複雑な HTML 変換を扱う場合や、Chromeレンダリングエンジンを使用する場合など、ログ出力に影響するレンダリングオプションを調べてください。

カスタムログ出力はどのように見えますか?

この例では、ログメッセージの前に追加情報を付けています。

VisualStudioのデバッガーコンソールに表示されるIronPdfの導入ログと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に割り当てます。一度設定すると、HTMLからPDFへの変換やPDF操作を含むすべてのIronPDF操作は自動的にカスタムロガーを通してログメッセージを送信します。

PDF生成にカスタムロギングを実装する利点は何ですか?

IronPDFのカスタムロギングでは、PDF処理イベントの追跡方法を完全にコントロールできます。複数のコンポーネントからのログを一元管理し、カスタム書式を適用し、重大度レベルでフィルタリングし、ファイル、データベース、監視サービスなどの特定の宛先にログをルーティングし、アプリケーションのログ機能を強化することができます。

PDF 処理ログを既存のロギングフレームワークと統合できますか?

IronPDFのカスタムロギング機能は、NLog、Serilog、log4net、またはカスタムロギングソリューションを含む一般的なロギングフレームワークとシームレスに統合します。これにより、PDF処理操作に関する重要な情報を取得しながら、アプリケーション全体で一貫したロギングパターンを保証します。

カスタムロギングを実装するための最小限のワークフローは何ですか?

最小限のワークフローは以下の5ステップです:NuGetからIronPDFをダウンロードし、LoggingModeをLoggingModes.Customに設定し、CustomLoggerをカスタムロガーオブジェクトに割り当てます。最後に、IronPDF操作のログを見るためにログメッセージを出力してください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 18,560,885 | バージョン: 2026.4 リリース
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。