.NET ヘルプ

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

公開済み 2024年4月29日
共有:

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

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

Prism Loggingの概要

Prism.Plugin.LoggingPrismは、XAMLアプリケーションを構築するための人気フレームワークであり、包括的なロギング機能を提供することで拡張されます。 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」と検索し、ソリューションの Manage NuGet Package を使用して Prism をインストールします。その後、プロジェクトを選択し、「インストール」ボタンをクリックします。

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

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

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

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

Prism ロギング(開発者向けの動作原理): 図 2 - Visual Studioを開き、「新しいプロジェクト」を選択 -「コンソールアプリ」を選択

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

Prism Logging(プリズムロギング)(開発者向けの仕組み)図3 - 次に、プロジェクト名と場所を指定してプロジェクトを構成します。 プロジェクトに対応する.NET Frameworkを選択し、「作成」ボタンをクリックしてください。

選択されたアプリケーションは、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
VB   C#

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

Prismログファイルを出力

プリズム ロギング(開発者のための仕組み):図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)
VB   C#

Prism LoggingとIronPDFの統合

PrismとIronPDFを一緒に使う

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

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

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

IronPDF をインストール

  • 以下の内容を日本語に翻訳します:

Open the

開くビジュアルスタジオプロジェクト

  • 「ツール」 > 「NuGet パッケージ マネージャー」 > 「パッケージ マネージャー コンソール」を選択します。

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

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

    プリズム ロギング (開発者向けの動作方法): 図5 - NuGetパッケージマネージャの検索バーで「IronPDF」を検索し、Manage NuGet Package for Solutionを使用してIronPDFをインストールします。その後、プロジェクトを選択し、インストールボタンをクリックします。

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

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

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

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

あるいは、DLLファイルを使用してIronPDFをプロジェクトに直接組み込むこともできます。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
VB   C#

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

プリズムログ(開発者向けの仕組み):図6 - IronPDFとPrism Log Reportからのデータを使用して生成された出力PDF。

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

結論

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

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

< 以前
TCP .NET(開発者向けの仕組み)
次へ >
Npgsql C# (開発者向けの仕組み)