.NET ヘルプ

Prism Logging (開発者向けの作動方法)

コンソールアプリケーションは、グラフィカルユーザーインターフェイスがないにもかかわらず、エラーの追跡、アプリケーションのパフォーマンス監視、および効率的なデバッグのために、しばしば強力なログ機構を必要とします。 Prism.Plugin.Logging は、Prism Logging フレームワークの拡張機能で、さまざまなログプロバイダーをサポートする .NET アプリケーション向けの包括的なログ ソリューションを提供します。

この記事では、PDF ドキュメントを扱う強力な .NET ライブラリであるIronPDFを使用して、コンソール アプリケーションにPrism Loggingを統合する方法を探ります。 これらのツールを組み合わせることで、開発者はコンソールアプリケーションに高度なロギング機能を実装し、メンテナンスおよびトラブルシューティングの機能を強化できます。

Prism Loggingの概要

Prism.Plugin.Logging は、XAMLアプリケーションを構築するための人気のあるフレームワークであるPrismを拡張し、包括的なログ機能を提供します。 NLog、Serilog、Microsoft.Extensions.Loggingなど複数のロギングプロバイダーをサポートしているため、Prism.Plugin.Loggingはさまざまなアプリケーション要件に対応する柔軟性とカスタマイズオプションを提供します。

Prism ロギングの利点

柔軟なロギング構成: Prism.Plugin.Loggingを使用すると、開発者はNLog、Serilog、Microsoft.Extensions.Loggingといった人気のあるオプションを含む様々なロギングプロバイダーをシームレスに構成できます。

構造化ログのサポート: 開発者はPrism.Plugin.Loggingを使用して、メッセージと共に構造化データをログに記録できます。 この機能は、IronPDFによって生成されるログ報告書にタイムスタンプ、エラーコード、ユーザーの活動などの包括的なコンテキストデータを記録し追加する必要があるコンソールアプリケーションに関わるシナリオで特に役立ちます。

プリズムロギングの使用方法

  1. 新しいC#プロジェクトを作成する

  2. Prism ロギング パッケージをインストールします。

  3. SyslogLoggerのオブジェクトを作成し、パラメータとして構成を渡します。

  4. ログメソッドを必要に応じて呼び出し、ログメッセージとログレベルを渡します。

  5. ログオブジェクトを最後に破棄します。

Prism Logsの使い始め方

C#プロジェクトでのPrismの設定

C#プロジェクトにPrismを統合するのは簡単です。 Prismを追加するには、Microsoftの.NETパッケージマネージャーであるNuGetを利用する必要があります。 Prism Logsをプロジェクトに組み込むために必要なツールとライブラリはこのライブラリによって提供されます。

Prism Logging (開発者向け: 仕組み): 図 1 - NuGet パッケージ マネージャーの検索バーで「Prism.Plugin.Logging.Loggly」を検索し、プロジェクトを選択してインストール ボタンをクリックして、ソリューションの NuGet パッケージの管理を使用して Prism をインストールします。

.NET アプリケーションでの Prism の実装

Prism は、Windows フォーム (WinForms) および Windows コンソールを含む、いくつかの Dot .NET アプリケーションタイプと互換性があります。 各フレームワークの実装方法は異なりますが、基本的な概念は常に同じであり、アプリケーションに関連するデータのログ記録を支援します。

Visual Studioで新しいプロジェクトを作成

Visual Studioアプリケーションで「ファイル」メニューを選択します。 「新しいプロジェクト」をクリックし、「コンソールアプリケーション」を選択します。

Prism Logging(開発者向けの動作方法):図 2 - Visual Studio を開いて「新しいプロジェクト」を選択 - 「コンソールアプリ」を選択

ファイルの場所を選択した後、指定されたテキスト領域にプロジェクト名を入力してください。 次に、以下のサンプルに示すように、作成ボタンをクリックして必要な.NET Frameworkを選択します。

![Prism Logging(開発者向けの仕組み):図3 - 次に、希望するプロジェクト名と場所を指定してプロジェクトを設定します。 お使いのプロジェクトに対応する.NET Frameworkを選択し、"Create"ボタンをクリックしてください。

選択されたアプリケーションは、Visual Studioプロジェクトの構成方法を決定します。 プログラムのコードを追加してビルドを開始するには、まず program.cs ファイルを開いてください。 Windows、コンソール、またはウェブアプリケーションを使用することができます。

その後、ライブラリを追加してコードをテストすることができます。

プリズムでログを使用する基本的な例。

以下のコード例では、prismログオブジェクトを起動し、Prismログに異なるログレベルを一つずつ追加し、すべてのログとその重要度をリストに保存します。

using Prism.Logging.Syslog;
class Program
{
    public class Demo
    {
        public string name { get; set; }
        public int age { get; set; }
        static Options genOptions = new Options
        {
            HostNameOrIp = "127.0.0.1",
            Port = 514,
            AppNameOrTag = "LoggingDemo"
        };
        static SyslogLogger logger = new SyslogLogger(genOptions);
        static IList<LogData> Loglst = new List<LogData>();
        static async Task Main(string [] args)
        {
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
            PerformApplicationLogic();
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
        }
        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");
            // Simulate error
            try
            {
                throw new Exception();// This will throw an exception
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }
        static void MessageLog(string Message, Prism.Logging.Syslog.Level _level)
        {
            Loglst.Add(new LogData { message = Message, Level = _level.ToString() });
            logger.Log(Message, _level);
        }
        public class LogData
        {
            public string message { get; set; }
            public string Level { get; set; }
        }
        public class Options : ISyslogOptions
        {
            public string HostNameOrIp { get; set; }
            public int? Port { get; set; }
            public string AppNameOrTag { get; set; }
        }
    }
}
using Prism.Logging.Syslog;
class Program
{
    public class Demo
    {
        public string name { get; set; }
        public int age { get; set; }
        static Options genOptions = new Options
        {
            HostNameOrIp = "127.0.0.1",
            Port = 514,
            AppNameOrTag = "LoggingDemo"
        };
        static SyslogLogger logger = new SyslogLogger(genOptions);
        static IList<LogData> Loglst = new List<LogData>();
        static async Task Main(string [] args)
        {
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
            PerformApplicationLogic();
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
        }
        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");
            // Simulate error
            try
            {
                throw new Exception();// This will throw an exception
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }
        static void MessageLog(string Message, Prism.Logging.Syslog.Level _level)
        {
            Loglst.Add(new LogData { message = Message, Level = _level.ToString() });
            logger.Log(Message, _level);
        }
        public class LogData
        {
            public string message { get; set; }
            public string Level { get; set; }
        }
        public class Options : ISyslogOptions
        {
            public string HostNameOrIp { get; set; }
            public int? Port { get; set; }
            public string AppNameOrTag { get; set; }
        }
    }
}
Imports Prism.Logging.Syslog
Friend Class Program
	Public Class Demo
		Public Property name() As String
		Public Property age() As Integer
		Private Shared genOptions As New Options With {
			.HostNameOrIp = "127.0.0.1",
			.Port = 514,
			.AppNameOrTag = "LoggingDemo"
		}
		Private Shared logger As New SyslogLogger(genOptions)
		Private Shared Loglst As IList(Of LogData) = New List(Of LogData)()
		Shared Async Function Main(ByVal args() As String) As Task
			MessageLog("Application started.", Prism.Logging.Syslog.Level.Information)
			PerformApplicationLogic()
			MessageLog("Application started.", Prism.Logging.Syslog.Level.Information)
		End Function
		Private Shared Sub PerformApplicationLogic()
			' Example application logic
			Console.WriteLine("Performing application logic...")
			' Simulate error
			Try
				Throw New Exception() ' This will throw an exception
			Catch ex As Exception
				MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error)
			End Try
		End Sub
		Private Shared Sub MessageLog(ByVal Message As String, ByVal _level As Prism.Logging.Syslog.Level)
			Loglst.Add(New LogData With {
				.message = Message,
				.Level = _level.ToString()
			})
			logger.Log(Message, _level)
		End Sub
		Public Class LogData
			Public Property message() As String
			Public Property Level() As String
		End Class
		Public Class Options
			Implements ISyslogOptions

			Public Property HostNameOrIp() As String
			Public Property Port() As Integer?
			Public Property AppNameOrTag() As String
		End Class
	End Class
End Class
$vbLabelText   $csharpLabel

ログレポートはPrism Loggingから生成されます。 私たちは、Prismログを監視するためにKiwi Syslog Service Managerというツールを使用しています。

Prismログファイルを出力

Prism Logging(開発者向けの動作方法):図4 - Kiwi Syslog Service Managerツールを使用して生成されたPrismログレポートを監視する。

プリズムログ操作

拡張可能なロギング

Prism.Plugin.Prismのロギング機能は、ロギングを通じてさらに機能性と柔軟性を拡張します。 それは、ログレベル、ログターゲット、および他の変数を調整するための様々な構成オプションを提供し、アプリケーションのログのニーズに対応します。

複数のログターゲット

Prism.Plugin.Loggingを使用すれば、ログメッセージをコンソール、ファイル、データベース、およびその他のログサービスなど、さまざまな場所にルーティングすることができます。 この柔軟性のおかげで、アプリケーションの要件や環境に最適なロギングターゲットを選択することができます。

カスタムロガー

プラグインを使用すると、PrismのILoggerFacadeインターフェースを実装してカスタムロガーを構築できます。 これにより、アプリケーションのニーズに基づいてカスタムロギング機能を構築したり、サードパーティのロギングフレームワークと連携することができます。

Prism Logsでログを作成

プリズムログは数行のコードで簡単に作成できます。 以下はログを作成するサンプルです。

static Options genOptions = new Options
{
        HostNameOrIp = "127.0.0.1",
        Port = 514,
        AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log(Message, _level);
static Options genOptions = new Options
{
        HostNameOrIp = "127.0.0.1",
        Port = 514,
        AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log(Message, _level);
Private Shared genOptions As New Options With {
	.HostNameOrIp = "127.0.0.1",
	.Port = 514,
	.AppNameOrTag = "LoggingDemo"
}
Private Shared logger As New SyslogLogger(genOptions)
logger.Log(Message, _level)
$vbLabelText   $csharpLabel

Prism LoggingとIronPDFの統合

PrismとIronPDFを一緒に使う

PrismIronPDFをC#プロジェクトで組み合わせると、いくつかのエキサイティングな可能性が広がります。 IronPDFは、このコンテンツをPDFに変換するための素晴らしいツールです。Prismはログを操作するための優れたツールですが、それでもIronPDFは優れています。 プログラマーは、この接続性を利用して、アイテムをカスタムデザインのPDFドキュメントにログインするアプリを作成できます。

IronPDFを使用したプリズム・ロギング

Prismログを利用するWindowsコンソールアプリケーションを作成することにより、ユーザーはプログラム内のログにアクセスすることができます。 このコントロールは、ログを作成するためのスペースを十分に残してコンソール上にフィットする必要があります。 サーバーログ操作とHTTPログを追加します。

IronPDF をインストール

  • Visual Studio プロジェクトを開きます。
  • 「ツール」 > 「NuGet パッケージ マネージャー」 > 「パッケージ マネージャー コンソール」を選択します。

    • パッケージ マネージャー コンソールで、次のコマンドを入力して Enter キーを押します:
Install-Package IronPdf
Install-Package IronPdf
SHELL
  • IronPDFをインストールするもう一つの方法は、NuGetパッケージマネージャーを使うことです。

    • 検索結果でIronPDFパッケージを閲覧し、それを選択してから「インストール」ボタンをクリックします。 Visual Studio は、ダウンロードとインストールを自動的に処理します。

    Prism Logging (開発者のための仕組み): 図5 - NuGetパッケージマネージャーの検索バーで「IronPdf」を検索し、ソリューションのNuGetパッケージを管理してIronPDFをインストールし、プロジェクトを選択してインストールボタンをクリックします。

  • NuGetは、IronPDFパッケージおよびプロジェクトに必要な依存関係をダウンロードしてインストールします。
  • IronPDFがインストールされると、プロジェクトで使用することができます。

NuGetウェブサイトを通じてインストール

IronPDFの機能、互換性、その他のダウンロードオプションについて詳しく知るには、NuGetのウェブサイトのhttps://www.nuget.org/packages/IronPdfにあるIronPDFのページをご覧ください。

DLLを使用してインストール

あるいは、IronPDFをプロジェクトに直接組み込むには、DLLファイルを使用する方法があります。DLLを含むZIPファイルをダウンロードするには、このリンクをクリックしてください。 解凍後、プロジェクトにDLLを含めてください。

ロジックの実装

  • レンダラとロガーの設定: ソフトウェアはIronPDFレンダラとPrismロガーを設定します。
  • ログメッセージ: 指定されたカテゴリーと優先度を持つメッセージは、MessageLog() メソッドを使用してログに記録できます。 以下の例では、アプリケーションの開始および停止メッセージと、アプリケーションの実行中に発生する例外をログに記録します。
  • ロジックの適用: アプリケーションロジックの一部は、PerformApplicationLogic() メソッドによってシミュレーションされます。 エラーログの例を示すために、この場合メッセージを生成し、例外を発生させます。
  • PDFログレポートの作成: アプリケーションロジックの実行後、ソフトウェアは記録されたメッセージに基づいてHTMLドキュメントを作成します。 次に、IronPDFのRenderHtmlAsPdf()機能を使用して、HTMLドキュメントをログファイルとしてPDFレポートに変換します。 PDFファイルをディスクに保存します。

    前述のコードを拡張してIronPDFコードを統合します:

using IronPdf;
static void GeneratePdfLogReport(ChromePdfRenderer Renderer)
{
    var Renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer
        // Generate HTML content for PDF report
        string htmlContent = "<h1>Log Report</h1><ul>";
        foreach (var log in Loglst)
        {
             htmlContent += $"<li><strong>{log.message}:</strong> {log.Level}</li>";
        }
        htmlContent += "</ul>";
        // Generate PDF document
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save PDF file
        string filePath = "log_report.pdf";
        pdfDocument.SaveAs(filePath);
        Console.WriteLine($"PDF log report generated: {filePath}");
}
using IronPdf;
static void GeneratePdfLogReport(ChromePdfRenderer Renderer)
{
    var Renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer
        // Generate HTML content for PDF report
        string htmlContent = "<h1>Log Report</h1><ul>";
        foreach (var log in Loglst)
        {
             htmlContent += $"<li><strong>{log.message}:</strong> {log.Level}</li>";
        }
        htmlContent += "</ul>";
        // Generate PDF document
        var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save PDF file
        string filePath = "log_report.pdf";
        pdfDocument.SaveAs(filePath);
        Console.WriteLine($"PDF log report generated: {filePath}");
}
Imports IronPdf
Shared Sub GeneratePdfLogReport(ByVal Renderer As ChromePdfRenderer)
	Dim Renderer = New ChromePdfRenderer() ' Instantiates Chrome Renderer
		' Generate HTML content for PDF report
		Dim htmlContent As String = "<h1>Log Report</h1><ul>"
		For Each log In Loglst
			 htmlContent &= $"<li><strong>{log.message}:</strong> {log.Level}</li>"
		Next log
		htmlContent &= "</ul>"
		' Generate PDF document
		Dim pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent)
		' Save PDF file
		Dim filePath As String = "log_report.pdf"
		pdfDocument.SaveAs(filePath)
		Console.WriteLine($"PDF log report generated: {filePath}")
End Sub
$vbLabelText   $csharpLabel

以下は、IronPDFによって生成された画像ログレポートです。

Prism Logging(開発者向けの動作方法):図6 - IronPDFとPrism Log Reportのデータを使用して生成された出力PDF。

IronPDFのコードリファレンスについて詳しく知るには、こちらを参照してください。

結論

Prism.Plugin.LoggingIronPDF の統合により、開発者はターミナルアプリに広範なロギング機能を簡単に組み込むことができます。開発者は両ツールの機能を活用することで、全体的なプログラムメンテナンスを改善し、デバッグ機能を最適化し、ロギング操作を迅速化できます。 Prism.Plugin.Loggingは、コンソールアプリケーションが完全なログ記録範囲を得られるようにし、適切な実装とセットアップを行うことで、強力な監視およびトラブルシューティング機能を保証します。

IronPDFは、永久ライセンス、1年間のソフトウェアメンテナンス、およびライブラリアップグレードが含まれる$749 Liteバンドルの永続ライセンスを提供します。 IronPDFは、時間および再配布に関する制限があるものの、開発目的での無料ライセンスを提供しています。 無料試用版を取得するには。 さまざまなIron Software製品の詳細については、ウェブサイトリンクをご覧ください。

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