.NET ヘルプ

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

イントロダクション

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

MS ロギングの設定方法

  1. 新しいVisual Studioプロジェクトを作成します。

  2. Microsoft.Extensions.LoggingライブラリをNuGetのMicrosoft.Extensions.Loggingパッケージページからインストールします。

  3. コンソールにLoggerインターフェースを注入します。

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

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

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

ステップ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>()
$vbLabelText   $csharpLabel

ステップ 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)
$vbLabelText   $csharpLabel

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

ログオブジェクトを使用して、異なるレベルのログを書き込むことができます。 利用可能なログ記録メソッドは、LogDebug()LogInformation()LogWarning()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")
$vbLabelText   $csharpLabel

ステップ 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
$vbLabelText   $csharpLabel

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

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

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

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

IronPDFでのMSLogging

IronPDFは、元のレイアウトとスタイルを正確に保持してHTMLからPDFへの変換に優れています。 それは、レポート、請求書、およびドキュメントなどのWebベースのコンテンツからPDFを作成するのに最適です。 IronPDFはHTMLファイル、URL、生のHTML文字列をサポートしており、簡単に高品質なPDFドキュメントを生成します。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDFでログを有効にするには、IronPDFの組み込みのログ機能と共にMicrosoft.Extensions.Loggingフレームワークを使用できます。 以下は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
$vbLabelText   $csharpLabel

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

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

IronPDFで必要な操作を実行した後、リソースを閉じて処分し、loggerFactoryを処分することでログメッセージをフラッシュすることができます。

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

IronPDF をインストール

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

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

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

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

dotnet add package IronPdf
dotnet add package IronPdf
SHELL
  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
$vbLabelText   $csharpLabel

このサンプルは、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の公式ウェブサイトをご覧ください。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
Cefsharp.WPF.NET Core(開発者向けの動作方法)
次へ >
Serilog .NET (開発者向けの仕組み)