フッターコンテンツにスキップ
.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 for .NETパッケージマネージャを使用することで、Prismを追加する必要があります。 このライブラリは、あなたのプロジェクトにPrism Logsを組み込むために必要なツールとライブラリを提供します。

Prism のログ記録 (開発者向けの仕組み): 図 1 - NuGetパッケージ マネージャーの検索バーで

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

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

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

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

Prism のログ記録 (開発者向けの仕組み): 図 2 - Visual Studio を開いて

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

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

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

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

Prism ログの基本的な使用例

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

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 Loggingから生成されます。 私たちは Prism ログを監視するために Kiwi Syslog Service Manager というツールを使用しています。

出力 Prism ログファイル

Prism ログ記録 (開発者向けの仕組み): 図 4 - Kiwi Syslog Service Manager ツールを使用して生成された Prism ログ レポートを監視します。

Prismログ操作

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の併用

Prism と IronPDF の併用

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

IronPDFを使ったPrism Logging

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

IronPDFのインストール

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

    • パッケージマネージャーコンソールに次のコマンドを入力し、Enter を押します:
    Install-Package IronPdf
    • 検索結果でIronPDFパッケージを見つけて、それを選択し、"インストール"ボタンをクリックします。
  • 検索結果でIronPDFパッケージをブラウズし、選択して"インストール"ボタンをクリックします。 Visual Studioはダウンロードとインストールを自動的に行います。

Prism ログ記録 (開発者向けの仕組み): 図 5 - NuGetパッケージ マネージャーの検索バーで

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

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

IronPDFの機能、互換性、その他のダウンロードオプションについては、NuGetウェブサイトのhttps://www.nuget.org/packages/IronPdfのIronPDFページを訪れて詳しく学びましょう。

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

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

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

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

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

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

Prism ログ記録 (開発者向けの仕組み): 図 6 - IronPDFと Prism ログレポートのデータを使用して生成された出力 PDF。

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

結論

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

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

よくある質問

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

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね