.NET ヘルプ

Microsoft Logging C#(開発者向けの仕組み)

公開済み 2024年1月27日
共有:

イントロダクション

ロギングは、アプリケーションの実行中に情報、警告、エラー、およびその他の関連データを記録するためのC#における重要な技術です。 それは、プログラムの動作を監視し、問題をトラブルシューティングし、アプリケーションがさまざまな状況でどのように機能するかを理解するのに役立ちます。 C#には、ログ処理を容易にするためのいくつかのロギングフレームワークとパッケージが提供されています。 Microsoft.Extensions.Loggingは、.NET Coreアプリケーションで最も広く使用されているロギングフレームワークの一つです。 Microsoft.Extensions.Logging NuGetパッケージは、.NET Coreでさまざまなログレベルを記録するためのいくつかの拡張メソッドにアクセスできるようにします。 この記事では、MS ロギングについて詳しく見ていきます。

MS ロギングの設定方法

  1. 新しいビジュアルスタジオプロジェクト

    1. 以下のコマンドで Microsoft.Extensions.Logging ライブラリをインストールします: NuGetのMicrosoft.Extensions.Loggingパッケージページ.
  2. Loggerインターフェースをコンソールに注入します。

  3. ログ出力を設定する。

  4. 異なるレベルでログを書き込みます。

  5. コードを実行してください。

ステップ1: 新しいVisual Studioプロジェクトを作成します

始めるには、Visual Studioで新しいプロジェクトを作成します。

ステップ 2: Microsoft.Extensions.Logging ライブラリをインストールする

Microsoft.Extensions.Logging ライブラリをインストールするにはNuGetのMicrosoft.Extensions.Loggingパッケージページ. このライブラリは、.NET Coreアプリケーションでロギングに必要なクラスとメソッドを提供します。

ステップ3: ロガーインターフェースをコンソールに注入する

ログ機能を使用するには、Loggerインターフェースのインスタンスをコンソールアプリケーションに注入する必要があります。 これは依存性注入フレームワークを使用するか、手動で Logger クラスのインスタンスを作成することで実行できます。

using Microsoft.Extensions.Logging;

// Inject the logger into the console
ILogger logger = LoggerFactory.Create(builder =>
{
    builder.AddConsole();
}).CreateLogger<Program>();
using Microsoft.Extensions.Logging;

// Inject the logger into the console
ILogger logger = LoggerFactory.Create(builder =>
{
    builder.AddConsole();
}).CreateLogger<Program>();
Imports Microsoft.Extensions.Logging

' Inject the logger into the console
Private logger As ILogger = LoggerFactory.Create(Sub(builder)
	builder.AddConsole()
End Sub).CreateLogger<Program>()
VB   C#

ステップ 4: ログ出力を構成する

ログの出力方法を設定します。 これは、ロガービルダーに1つ以上のロギングプロバイダーを追加することで行うことができます。 最も一般的なプロバイダーはコンソールロガーであり、ログをコンソールに出力します。

builder.AddConsole(options =>
{
    options.TimestampFormat = "[HH:mm:ss] ";
});
builder.AddConsole(options =>
{
    options.TimestampFormat = "[HH:mm:ss] ";
});
builder.AddConsole(Sub(options)
	options.TimestampFormat = "[HH:mm:ss] "
End Sub)
VB   C#

ステップ5: 異なるレベルでログを記録する

ログオブジェクトを使用して、異なるレベルのログを書き込むことができます。 利用可能なログ記録方法は LogDebug()``,LogInformation(),警告を記録(),LogError()「,」および「LogCritical」()`.

logger.LogDebug("This is a debug message");
logger.LogInformation("This is an information message");
logger.LogWarning("This is a warning message");
logger.LogError("This is an error message");
logger.LogCritical("This is a critical message");
logger.LogDebug("This is a debug message");
logger.LogInformation("This is an information message");
logger.LogWarning("This is a warning message");
logger.LogError("This is an error message");
logger.LogCritical("This is a critical message");
logger.LogDebug("This is a debug message")
logger.LogInformation("This is an information message")
logger.LogWarning("This is a warning message")
logger.LogError("This is an error message")
logger.LogCritical("This is a critical message")
VB   C#

ステップ 6: コードを実行する

最後に、コードを実行し、設定された内容に従って出力されるログを確認してください。

以上です! C#アプリケーションにMSログを正常にセットアップして使用しました。

MSログインのインストール

MS Logging をインストールするには、次の手順に従ってください。

  1. Visual Studioを起動してください。

  2. ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソールに移動します。

  3. パッケージ マネージャー コンソールで、次のコマンドを実行してください:
    Install-Package Microsoft.Extensions.Logging
  1. コマンドを実行するには Enter を押してください。 これは Microsoft.Extensions.Logging パッケージをプロジェクトにダウンロードしてインストールします。

ログレベル

C# の Microsoft.Extensions.Logging フレームワークでは、開発者がログメッセージをその重要性と深刻度に応じて分類およびランク付けするために、いくつかのログレベルが利用可能です。 これらのレベルは、さまざまなメッセージタイプを区別し、ログの冗長性を調整するのに頻繁に使用されます。

Microsoft.Extensions.Logging が提供するデフォルトのロギングレベルは以下の通りです:

  • トレース:(トレース): 最も徹底的なレベルであり、プログラムの内部動作を深く理解するために非常に詳細なデータで使用されることが多い。
  • デバッグ: 開発およびデバッグ段階で役立つデバッグ情報ですが、通常は本番環境では必要ありません。
  • 情報: アプリケーションが通常どのように機能するかの詳細を提供します。 通常、このログを使用してプログラムの通常の動作が監視されます。
  • 警告: 将来問題が発生する可能性がある点や、注意が必要な事項を指摘します。 それは、異常または予期しない状況に使用され、問題を引き起こす可能性がありますが、必ずしもプログラムがクラッシュするわけではありません。
  • エラー: 直ちに修正が必要な重大な問題またはミスを示します。 通常、アプリケーションの動作に影響を与える問題を記録するために使用されます。
  • クリティカル: 最も深刻な状態で、すぐに対処しなければ重大な問題やプログラムのクラッシュを引き起こす可能性がある致命的な問題を記録するために使用されます。

    各ログレベルは特定の目的に役立ち、開発者がロギングフレームワークが出力するデータ量を管理できるようにします。 開発者は、記録されるデータの重要性と重大性に基づいて、適切なメッセージ記録レベルを選択することができます。

C# ロギングの設定

Microsoft.Extensions.Logging を使用してログ記録を設定する基本的な例を以下に示します:

using Microsoft.Extensions.Logging;
using System;

class Program
{
    // Create a LoggerFactory instance
    private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
    {
        // Add console logger
        builder.AddConsole();
        // You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
    });

    // Create a logger
    private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string [] args)
    {
        // Example log messages
        Logger.LogInformation("Information log");
        Logger.LogWarning("Warning log");
        Logger.LogError("Error log");

        try
        {
            // Simulate an exception
            throw new Exception("Exception occurred");
        }
        catch (Exception ex)
        {
            // Log exception details
            Logger.LogError(ex, "Exception log");
        }

        Console.ReadKey();
    }
}
using Microsoft.Extensions.Logging;
using System;

class Program
{
    // Create a LoggerFactory instance
    private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
    {
        // Add console logger
        builder.AddConsole();
        // You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
    });

    // Create a logger
    private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string [] args)
    {
        // Example log messages
        Logger.LogInformation("Information log");
        Logger.LogWarning("Warning log");
        Logger.LogError("Error log");

        try
        {
            // Simulate an exception
            throw new Exception("Exception occurred");
        }
        catch (Exception ex)
        {
            // Log exception details
            Logger.LogError(ex, "Exception log");
        }

        Console.ReadKey();
    }
}
Imports Microsoft.Extensions.Logging
Imports System

Friend Class Program
	' Create a LoggerFactory instance
	Private Shared ReadOnly LoggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
		' Add console logger
		builder.AddConsole()
		' You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
	End Sub)

	' Create a logger
	Private Shared ReadOnly Logger As ILogger = LoggerFactory.CreateLogger(Of Program)()

	Shared Sub Main(ByVal args() As String)
		' Example log messages
		Logger.LogInformation("Information log")
		Logger.LogWarning("Warning log")
		Logger.LogError("Error log")

		Try
			' Simulate an exception
			Throw New Exception("Exception occurred")
		Catch ex As Exception
			' Log exception details
			Logger.LogError(ex, "Exception log")
		End Try

		Console.ReadKey()
	End Sub
End Class
VB   C#

この例では、コンソール ロガーがロギング設定に追加され、ログをコンソールに書き込みます。 ただし、Microsoft.Extensions.Logging は、ファイル、データベースへのログ記録や他のロギングフレームワークとの接続を含む、さまざまなロギングプロバイダを提供します。 さらに、特定の要件に従ってログをフォーマットできるカスタムロギングプロバイダーを作成することが可能です。

ログ用の追加プロバイダーを含める

Createメソッド内に関連するメソッドをチェーンすることで、追加のロギングソースを追加することができます。()` 関数。 例えば:

  • デバッガー出力ロギングプロバイダーを追加するには、builder.AddDebug を使用します。()`.
  • ファイルロギングプロバイダーを追加するには、builder.AddFile を使用します。(「log.txt」)`.

IronPDFでのMSLogging

IronPDFでロギングを有効にするには、Microsoft.Extensions.Logging フレームワークと IronPDF の組み込みロギング機能を併用できます。 以下はIronPDFでログ設定を行う方法の例です:

using Microsoft.Extensions.Logging;
using IronPdf;

class Program
{
    static void Main(string [] args)
    {
        ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
        {
            builder
                .AddConsole()
                .AddDebug();
        });

        ILogger<Program> logger = loggerFactory.CreateLogger<Program>();

        // Enable logging in IronPDF
        Logger.Log = new LoggerImplementation(logger);

        // Use IronPDF and perform operations
        // ...

        // Example of logging an error in IronPDF
        Logger.Log.Error("An error occurred while processing the PDF");

        // Example of logging a warning in IronPDF
        Logger.Log.Warning("This is a warning message");

        // Example of logging an information message in IronPDF
        Logger.Log.Information("This is an information message");

        // ...

        // Close and dispose resources
        // ...

        // Flush the log messages
        loggerFactory.Dispose();
    }
}
using Microsoft.Extensions.Logging;
using IronPdf;

class Program
{
    static void Main(string [] args)
    {
        ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
        {
            builder
                .AddConsole()
                .AddDebug();
        });

        ILogger<Program> logger = loggerFactory.CreateLogger<Program>();

        // Enable logging in IronPDF
        Logger.Log = new LoggerImplementation(logger);

        // Use IronPDF and perform operations
        // ...

        // Example of logging an error in IronPDF
        Logger.Log.Error("An error occurred while processing the PDF");

        // Example of logging a warning in IronPDF
        Logger.Log.Warning("This is a warning message");

        // Example of logging an information message in IronPDF
        Logger.Log.Information("This is an information message");

        // ...

        // Close and dispose resources
        // ...

        // Flush the log messages
        loggerFactory.Dispose();
    }
}
Imports Microsoft.Extensions.Logging
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim loggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
			builder.AddConsole().AddDebug()
		End Sub)

		Dim logger As ILogger(Of Program) = loggerFactory.CreateLogger(Of Program)()

		' Enable logging in IronPDF
		Logger.Log = New LoggerImplementation(logger)

		' Use IronPDF and perform operations
		' ...

		' Example of logging an error in IronPDF
		Logger.Log.Error("An error occurred while processing the PDF")

		' Example of logging a warning in IronPDF
		Logger.Log.Warning("This is a warning message")

		' Example of logging an information message in IronPDF
		Logger.Log.Information("This is an information message")

		' ...

		' Close and dispose resources
		' ...

		' Flush the log messages
		loggerFactory.Dispose()
	End Sub
End Class
VB   C#

この例では、Microsoft.Extensions.LoggingフレームワークからLoggerFactoryのインスタンスを作成します。 次に、Programクラス用のロガーをファクトリーから作成します。

IronPDFでログを有効にするには、静的な Logger.Log プロパティを loggerFactory から取得したロガーを LoggerImplementation インスタンスとして設定します。 この構成により、IronPDF内でメッセージを記録するためにLogger.Logメソッドを使用できます。

IronPDFで必要な操作を行った後、リソースをクローズして破棄し、loggerFactoryを破棄することでログメッセージをフラッシュすることができる。

注意: Microsoft.Extensions.LoggingおよびIronPDFの必要な依存関係とパッケージがインストールされていることを確認してください。

IronPDF をインストール

IronPDFライブラリをインストールするには、以下の手順に従ってください:

  1. Visual Studioでパッケージ マネージャー コンソールを開きます。

  2. NuGetを使用してIronPDFライブラリをインストールするには、次のコマンドを入力してください:
Install-Package IronPdf

または、次のコマンドをターミナルで実行することで .NET CLI を使用することもできます:

dotnet add package IronPdf
  1. コマンドを実行するには Enter を押してください。 これは、IronPDFパッケージをプロジェクトにダウンロードしてインストールします。

    IronPDFライブラリをNuGetパッケージマネージャGUIを使用してインストールすることも可能です。 「Browse」タブで「IronPDF」パッケージを検索し、リストから希望するパッケージを選択し、最新バージョンのIronPDFをインストールしてください。

    インストールが完了したら、プロジェクトでIronPDFライブラリの使用を開始できます。

IronPDFを使用したMSロギング

2022年1月現在、IronPDFはMicrosoft.Extensions.Loggingと直接相互作用せず、ネイティブサポートされていません。 IronPDFは、主にC#プログラムでPDFを作成および修正するためのツールとして使用されます。

しかし、Microsoft.Extensionsを使用してロギングを組み込むことは依然として可能です。 C#プログラムにIronPDFを組み込んでログ記録を行うことで、PDF生成、アプリケーションのワークフロー、IronPDFを使用する際に発生する問題に関するイベントを管理およびログ記録できます。

以下は、Microsoft.Extensionsを使用してIronPDFとロギングを統合する方法の例です:

using Microsoft.Extensions.Logging;
using IronPdf;
using System;

class Program
{
    private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
    {
        builder.AddConsole(); // Add other logging providers as needed
    });

    private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string [] args)
    {
        try
        {
            // Your IronPDF code for PDF generation or manipulation
            var Renderer = new IronPdf.HtmlToPdf();
            var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
            PDF.SaveAs("Output.pdf");
            Logger.LogInformation("PDF created successfully.");
        }
        catch (Exception ex)
        {
            Logger.LogError(ex, "An error occurred while generating the PDF.");
        }

        Console.ReadKey();
    }
}
using Microsoft.Extensions.Logging;
using IronPdf;
using System;

class Program
{
    private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
    {
        builder.AddConsole(); // Add other logging providers as needed
    });

    private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string [] args)
    {
        try
        {
            // Your IronPDF code for PDF generation or manipulation
            var Renderer = new IronPdf.HtmlToPdf();
            var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
            PDF.SaveAs("Output.pdf");
            Logger.LogInformation("PDF created successfully.");
        }
        catch (Exception ex)
        {
            Logger.LogError(ex, "An error occurred while generating the PDF.");
        }

        Console.ReadKey();
    }
}
Imports Microsoft.Extensions.Logging
Imports IronPdf
Imports System

Friend Class Program
	Private Shared ReadOnly LoggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
		builder.AddConsole() ' Add other logging providers as needed
	End Sub)

	Private Shared ReadOnly Logger As ILogger = LoggerFactory.CreateLogger(Of Program)()

	Shared Sub Main(ByVal args() As String)
		Try
			' Your IronPDF code for PDF generation or manipulation
			Dim Renderer = New IronPdf.HtmlToPdf()
			Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
			PDF.SaveAs("Output.pdf")
			Logger.LogInformation("PDF created successfully.")
		Catch ex As Exception
			Logger.LogError(ex, "An error occurred while generating the PDF.")
		End Try

		Console.ReadKey()
	End Sub
End Class
VB   C#

このサンプルは、IronPDFを使用するC#アプリケーション内でMicrosoft.Extensions.Loggingを設定する簡単な方法を示しています。 ログメッセージは、PDFの作成が成功したことを記録し、発生する可能性のある例外を記録するために生成されます。

ログレベル、エラーハンドリング、およびメッセージを、アプリケーションの特定のニーズおよびIronPDFがPDFの作成または変更に使用されるシナリオに応じてカスタマイズしてください。 次の内容を日本語に翻訳してください:

ログレベルを使って異なる種類のログメッセージを適切に区別することは、効果的なデバッグと監視に役立ちます。

IronPDFについてもっと知りたい方はIronPDF ホームページ、.

結論

結論として、Microsoft.Extensions.Loggingを統合することで、C#開発者は効果的にロギングタスクを処理できます。 IronPDFは包括的なログ機能を提供し、アプリケーションのイベント、エラー、および重要なデータの詳細な記録、分析、および報告を可能にします。 これはアプリケーションの信頼性、保守性、およびデバッグを向上させます。

IronPDFは、$749で提供されるLiteバンドルを含む、さまざまなソフトウェア製品を提供しています。 このバンドルには、永久ライセンス、アップグレードオプション、1年間のソフトウェアメンテナンス、および30日間の返金保証が含まれています。 ウォーターマーク付きのトライアル期間中に、IronPDF の機能を調べることができます。 Iron Softwareが提供するソフトウェア製品の詳細については、以下をご覧ください。Iron Softwareの公式ウェブサイト.

< 以前
Cefsharp.WPF.NET Core(開発者向けの動作方法)
次へ >
Serilog .NET (開発者向けの仕組み)