フッターコンテンツにスキップ
.NETヘルプ

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

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

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

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によって生成されるログレポートに追加する必要があるコンソールアプリケーションに関与するシナリオで特に役立ちます。

Prism ロギングの使用方法

  1. 新しいC#プロジェクトを作成する
  2. Prism ロギングパッケージをインストールします。
  3. SyslogLoggerのオブジェクトを作成し、構成をパラメータとして渡します。
  4. 必要に応じてログメソッドを呼び出し、ログメッセージとロギングレベルを渡します。
  5. 最後にログオブジェクトを破棄します。

Prism ログの使い方を始める

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

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

Prism Logging(開発者がどのように使用するか):図1 - NuGetパッケージマネージャの検索バーでPrism.Plugin.Logging.Logglyを検索し、プロジェクトを選択してインストールボタンをクリックすることにより、Manage NuGet Package for Solutionを使用してPrismをインストールします。

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

Prismは、Windows Forms(WinForms)やWindows Consoleなど、さまざまなDot .NETアプリケーションタイプと互換性があります。 各フレームワークの実装方法は異なりますが、基本的な考え方は常に同じであり、アプリケーションに関連するデータのログを支援します。

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

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

Prism Logging(開発者がどのように使用するか):図2 - Visual Studioを開き、「新しいプロジェクト」を選択 - 「コンソールアプリ」を選択

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

Prism Logging(開発者がどのように使用するか):図3 - 次に、希望のプロジェクト名と場所を指定してプロジェクトを構成します。 プロジェクトの.NETフレームワークを選択し、「作成」ボタンをクリックします。 選択したアプリケーションによって、Visual Studioプロジェクトの構成が決定されます。

プログラム.csファイルを開くだけで、アプリケーションにコードを追加して構築を開始できます。 Windows、コンソール、またはWebアプリケーションを使用できます。 その後、ライブラリを追加してコードをテストできます。

Prismログの基本例

以下のコード例では、Prismログオブジェクトを初期化し、Prismログに異なるロギングレベルを1つずつ追加し、すべてのログとその重要性をリストに保存します。

Prism Loggingからログレポートが生成されます。

using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    public class Demo
    {
        public string Name { get; set; }
        public int Age { get; set; }

        // Configure the logger options
        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 stopped.", Prism.Logging.Syslog.Level.Information);
        }

        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");

            // Simulate error
            try
            {
                throw new Exception("Simulated Exception");
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }

        // Logs messages and their levels
        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;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    public class Demo
    {
        public string Name { get; set; }
        public int Age { get; set; }

        // Configure the logger options
        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 stopped.", Prism.Logging.Syslog.Level.Information);
        }

        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");

            // Simulate error
            try
            {
                throw new Exception("Simulated Exception");
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }

        // Logs messages and their levels
        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
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks

Friend Class Program
	Public Class Demo
		Public Property Name() As String
		Public Property Age() As Integer

		' Configure the logger options
		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 stopped.", 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("Simulated Exception")
			Catch ex As Exception
				MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error)
			End Try
		End Sub

		' Logs messages and their levels
		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ログを監視するために、Kiwi Syslog Service Managerというツールを使用しています。 #### Prismログファイルの出力

Prism Logging(開発者がどのように使用するか):図4 - Kiwi Syslog Service Managerツールを使用して生成されたPrismログレポートを監視します。

Prismログの操作

拡張可能なロギング

Prism.Plugin.Loggingの機能は、ロギングによって拡張され、より多くの機能と柔軟性が提供されます。

ログレベル、ログターゲット、その他の変数を調整するためのさまざまな設定オプションを提供して、あなたのアプリケーションのログニーズに対応します。 #### 複数のログターゲット

Prism.Plugin.Loggingを使用することで、コンソール、ファイル、データベース、その他のロギングサービスなどのさまざまな場所にログメッセージを送信することができます。

この柔軟性により、アプリケーションの要件や環境に最適なロギングターゲットを選択できます。 #### カスタムロガー

このプラグインを使用して、PrismのILoggerFacadeインターフェースを実装し、カスタムロガーを構築することができます。

これにより、アプリケーションのニーズに基づいてカスタムロギング機能を構築したり、サードパーティのロギングフレームワークと統合することができます。 #### Prism Logsでログを作成する

Prismログは、数行のコードで簡単に作成できます。

ログを作成するサンプルを以下に示します。 ## Prism LoggingとIronPDFの統合

static Options genOptions = new Options
{
    HostNameOrIp = "127.0.0.1",
    Port = 514,
    AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
static Options genOptions = new Options
{
    HostNameOrIp = "127.0.0.1",
    Port = 514,
    AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
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("Sample message", Prism.Logging.Syslog.Level.Information)
$vbLabelText   $csharpLabel

PrismとIronPDFの併用

IronPDFと一緒にC#プロジェクトで組み合わせると、いくつかのエキサイティングな可能性が開けます。

Combining Prism with IronPDF in a C# project opens some exciting possibilities. この接続性により、プログラマーはカスタム設計されたPDFドキュメントにアイテムをログするアプリを作成できます。 #### IronPDFとPrism Logging

Prismログを利用して、Windowsコンソールアプリケーションを作成し、プログラム内でログに対話できるようにできます。

この制御は、コンソールに十分なスペースがあり、ログを作成するために合うべきです。 サーバーログ操作とHTTPログを追加します。 * Visual Studioプロジェクトを開きます。

IronPDF のインストール

  • パッケージマネージャーコンソールで、次のコマンドを入力してEnterキーを押します:

    • 「ツール」>「NuGet パッケージ マネージャー」>「パッケージ マネージャー コンソール」を選択します。
    • IronPDFをインストールするもう一つの方法は、NuGet Package Manager for Solutionsを使用することです。
    Install-Package IronPdf
  • 検索結果でIronPDFパッケージを見つけて、それを選択し、「インストール」ボタンをクリックします。 Prism Logging(開発者がどのように使用するか):図5 - NuGetパッケージマネージャの検索バーでIronPdfを検索して、プロジェクトを選択してインストールボタンをクリックすることにより、Manage NuGet Package for Solutionを使用してIronPDFをインストールします。 Visual Studioはダウンロードとインストールを自動的に行います。
  • NuGetは、プロジェクトに必要なIronPDFパッケージやその他の依存関係をダウンロードしてインストールします。

  • IronPDFがインストールされた後、あなたのプロジェクトでそれを使用することができます。 IronPDFの機能、互換性、その他のダウンロードオプションについて詳しく知るには、NuGetのウェブサイトでIronPDFページを訪問してください。

NuGetウェブサイトからのインストール

または、DLLファイルを使用してIronPDFを直接プロジェクトに組み込むことができます。DLLを含むZIPファイルをダウンロードするには、このリンクをクリックします。

DLLを利用したインストール

解凍後、プロジェクトにDLLを含めます。 ## ロジックの実装

  • レンダラーとロガーの設定: ソフトウェアは、IronPDFレンダラーとPrismロガーをセットアップします。

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

以下はIronPDFから生成された画像ログレポートです。

using IronPdf;

static void GeneratePdfLogReport()
{
    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>Message: {log.Message}</strong> Level: {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()
{
    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>Message: {log.Message}</strong> Level: {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()
	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>Message: {log.Message}</strong> Level: {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

Prism Logging(開発者がどのように使用するか):図6 - IronPDFとPrism Log Reportのデータを使用して生成された出力PDF。

IronPDFコードリファレンスについて詳しく知りたい方は、こちらをご覧ください。

IronPDFを統合することで、開発者は端末アプリに広範なロギング機能を簡単に組み込むことができます。開発者は、両方のツールの機能を利用することにより、プログラムの全体的なメンテナンスを改善し、デバッグ機能を最適化し、ロギング操作を迅速化することができます。

結論

Prism.Plugin.Logging integration with Prism.Plugin.Loggingは、コンソールアプリケーションが完全なログカバレッジを取得し、堅牢な監視とトラブルシューティング機能を保証するために、適切な実装と設定で利用可能です。 IronPDFは、恒久的なライセンス、1年間のソフトウェアメンテナンス、およびライブラリのアップグレードを含むLiteバンドルの永久ライセンスを提供します。

IronPDFは、時間と再配布の制限を受けて、開発目的で無料のライセンスを提供しています。 無料トライアルを取得するには。 Iron Softwareのさまざまな製品について詳しく知るには、彼らのウェブサイトリンクをご覧ください。 To find out more about the various Iron Software products, please visit their website link.

よくある質問

.NET コンソール アプリケーションにログ機能を統合するにはどうすればよいですか?

.NET コンソール アプリケーションにログ機能を統合するには、Prism.Plugin.Logging を使用します。これは、さまざまなロギング プロバイダーをサポートし、構造化されたログフレームワークを提供します。セットアップするには、Prism ロギングパッケージをインストールし、必要なログオブジェクトを作成し、ログターゲットとレベルを構成します。

Prism Logging と IronPDF を組み合わせることの利点は何ですか?

Prism Logging と IronPDF を組み合わせることで、PDF ログレポートを生成でき、アプリケーションの保守性とトラブルシューティングが向上します。IronPDF は HTML ログコンテンツを PDF ドキュメントに変換でき、ログをレビューおよび共有するためのポータブルな形式を提供します。

.NET でログデータを PDF ドキュメントに変換するにはどうすればよいですか?

.NET でログデータを PDF ドキュメントに変換するには、IronPDF を使用してログデータを HTML としてレンダリングし、RenderHtmlAsPdf などのメソッドを使用してそれを PDF に変換します。これにより、詳細でポータブルなログレポートを作成できます。

Prism.Plugin.Logging はどのロギングプロバイダーと互換性がありますか?

Prism.Plugin.Logging は、NLog、Serilog、および Microsoft.Extensions.Logging などの複数のロギング プロバイダーと互換性があります。この柔軟性により、開発者はプロジェクトのニーズに最も適したロギング プロバイダーを選択できます。

Visual Studio で Prism ロギングプロジェクトを設定するにはどうすればよいですか?

Visual Studio で Prism ロギングプロジェクトを設定するには、新しい C# プロジェクトを作成し、NuGet パッケージ マネージャーを使用して Prism ロギングパッケージをインストールし、SyslogLogger オブジェクトを作成してログレベルとターゲットを構成することによってロギングフレームワークを初期化します。

Prism.Plugin.Logging はカスタムログの構成に使用できますか?

はい、Prism.Plugin.Logging はカスタムログの構成をサポートしています。ログレベルを調整し、カスタムロガーを定義し、ログメッセージをさまざまなデスティネーションにルーティングすることができ、特定のアプリケーション要件に応じたログの設定が可能です。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。