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

How to use Custom Logging in C#

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

カスタムロギングとは、アプリケーションやシステムの特定のニーズや要件に合わせたロギングシステムを実装することを指します。 これは、ソフトウェアの操作中に生成された情報、イベント、メッセージを記録するためのログファイルを作成し使用することを含みます。

クイックスタート: IronPDFでのカスタムロギングの実装

IronPDFを使用してC#でカスタムロギングを迅速に始めましょう。 このガイドでは、LoggingModeCustomに設定し、アプリケーションに合わせたロガークラスとリンクする方法を示します。 IronPDFメッセージをカスタムロガーに送ることで、アプリケーションのログを効果的に監視し管理できます。 セットアップは簡単で、アプリケーションのログ能力をあなたの独自のニーズに合わせて強化できます。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
    IronSoftware.Logger.CustomLogger = new MyCustomLogger();
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小限のワークフロー(5つのステップ)

  1. NuGetからIronPDFをダウンロード
  2. LoggingModeプロパティをLoggingModes.Customに設定する
  3. CustomLoggerプロパティをカスタムロガーオブジェクトに割り当てる
  4. すべてのログメッセージがカスタムロガーに転送されます
  5. ログメッセージを出力してログを確認する


カスタムロギング例

カスタムロギング機能を利用するには、LoggingModeプロパティをLoggingModes.Customに変更します。 その後、CustomLoggerプロパティを作成したカスタムロガークラスに割り当てます。

: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ロガーのものと同一です; ただ単にカスタムロガーに中継されます。 メッセージの管理方法はカスタムロガーデザイナーによって決定されます。 次のカスタムロガークラスを例として使用しましょう。

: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

この場合、ログメッセージを追加情報でプレフィックスしました。

class="content-img-align-center">
class="center-image-wrapper"> コンソールウィンドウ

次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: 追加機能

よくある質問

C#でカスタム・ロギングを実装するにはどうすればよいですか?

IronPDFを使用してC#でカスタム・ロギングを実装できます。まずNuGetからIronPDFをダウンロードし、LoggingModeプロパティをLoggingModes.Customに設定し、CustomLoggerプロパティにカスタム・ロガー・オブジェクトを割り当てます。この設定により、すべてのログ・メッセージがカスタム・ロガーに送信されることが保証されます。

IronPDFでカスタム・ロギングを開始するために必要なステップは何ですか?

IronPDFでカスタム・ロギングを開始するには、NuGetからライブラリをダウンロードし、LoggingModeLoggingModes.Customに設定し、CustomLoggerプロパティにカスタム・ロガーを割り当て、すべてのログ・メッセージがログ出力用にロガーに転送されることを確認します。

IronPDFでのCustomLoggerプロパティの役割は何ですか?

IronPDFでのCustomLoggerプロパティは、カスタム・ロガー・オブジェクトを割り当てることができます。この機能を使用すると、すべてのログ・メッセージはカスタム・ロガーに転送され、アプリケーションの必要に応じてログの記録と表示を管理できます。

C#でカスタム・ロガーを設定する詳細な例を提供できますか?

もちろんです!C#でカスタム・ロガーを設定するには、IronPDFからILoggerインタフェースを実装する必要があります。LogInformationLogWarningLogErrorのようなメソッドを定義して様々なログ・メッセージを処理し、CustomLoggerプロパティにカスタム・ロガーを割り当てます。

なぜ私のC#アプリケーションでカスタム・ロギングを使用する必要がありますか?

カスタム・ロギングは、特定のニーズを満たすロギング・システムを作成することができるため、C#アプリケーションにおいて有益です。このカスタマイズにより、詳細で関連性のあるログ情報を提供することで監視、デバッグ、保守性が向上します。

IronPDFと共にカスタム・ロギングを使用する利点は何ですか?

IronPDFと共にカスタム・ロギングを使用することは、ログ・メッセージの管理方法における柔軟性を提供します。それはアプリケーションの要件に合わせてロギングを調整し、プロセスに最適な方法でログ・メッセージを捕捉し処理することを保証します。

ILoggerインタフェースはどのようにカスタム・ロギングをサポートしますか?

ILoggerインタフェースは、カスタム・ロガーで実装しなければならない構造を提供することでカスタム・ロギングをサポートします。これは、ログ・メッセージの異なるタイプを処理するためのメソッドを含み、包括的なロギング機能を保証します。

IronPDFでカスタム・ロガーを使用してログできるメッセージのタイプは何ですか?

IronPDFでのカスタム・ロガーは情報、警告、およびエラー・メッセージを含む様々なログ・メッセージを処理できます。この包括的なロギング機能は、アプリケーションの操作に関する詳細な記録を保証します。

IronPDF のカスタム ログは .NET 10 で完全にサポートされていますか?

はい。IronPDFは、カスタムログ機能を含め、.NET 10と完全に互換性があります。LoggingModes.Custom LoggingModes.Custom使用し、 CustomLoggerを介して.NET 10プロジェクトでカスタムロガーを割り当てることができます。追加の回避策は必要ありません。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はいいですか?
Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました