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 ロギングの使用方法
- 新しいC#プロジェクトを作成する
- Prism ロギングパッケージをインストールします。
- SyslogLoggerのオブジェクトを作成し、構成をパラメータとして渡します。
- 必要に応じてログメソッドを呼び出し、ログメッセージとロギングレベルを渡します。
- 最後にログオブジェクトを破棄します。
Prism ログの使い方を始める
C#プロジェクトへのPrismのセットアップ
C#プロジェクトにPrismを統合するのは簡単です。 NuGet、Microsoft for .NETパッケージマネージャを使用することで、Prismを追加する必要があります。 このライブラリは、あなたのプロジェクトにPrism Logsを組み込むために必要なツールとライブラリを提供します。

Dot .NETアプリケーションへのPrismの実装
Prismは、Windows Forms(WinForms)やWindows Consoleなど、さまざまなDot .NETアプリケーションタイプと互換性があります。 各フレームワークの実装方法は異なりますが、基本的な考え方は常に同じであり、アプリケーションに関連するデータのログを支援します。
Visual Studioで新しいプロジェクトを作成する
Visual Studioアプリケーションで[ファイル]メニューを選択します。 "新しいプロジェクト"をクリックし、"コンソールアプリケーション"を選択します。

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

選択したアプリケーションが、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
ログレポートはPrism Loggingから生成されます。 私たちは Prism ログを監視するために 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)
PrismとIronPDFの併用
Prism と IronPDF の併用
Prism と IronPDF を C# プロジェクトに組み合わせると、いくつかのエキサイティングな可能性が広がります。 IronPDF はこのコンテンツを PDF に変換するための素晴らしいツールですが、Prism はログ操作に優れたツールです。 この接続性により、プログラマーはアイテムをカスタム設計された PDF ドキュメントに記録するアプリを作成できます。
IronPDFを使ったPrism Logging
この制御は、コンソールに十分なスペースがあり、ログを作成するために合うべきです。 サーバーログ操作とHTTPログを追加します。 サーバーログ操作とHTTPログを追加します。
IronPDFのインストール
- Visual Studioプロジェクトを開きます。
-
"ツール">"NuGet パッケージ マネージャー">"パッケージ マネージャー コンソール"を選択します。
- パッケージマネージャーコンソールに次のコマンドを入力し、Enter を押します:
Install-Package IronPdf
- 検索結果でIronPDFパッケージを見つけて、それを選択し、"インストール"ボタンをクリックします。
- 検索結果でIronPDFパッケージをブラウズし、選択して"インストール"ボタンをクリックします。 Visual Studioはダウンロードとインストールを自動的に行います。

- 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
以下はIronPDFから生成された画像ログレポートです

IronPDFコードリファレンスについてはこちらを参照してください。
結論
Prism.Plugin.LoggingとIronPDFの統合により、開発者はターミナルアプリに簡単に広範なロギング機能を組み込むことができます。開発者は両方のツールの機能を活用することにより、全体的なプログラムメンテナンスを改善し、デバッグ機能を最適化し、ロギング操作を迅速化できます。 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 はカスタムログの構成をサポートしています。ログレベルを調整し、カスタムロガーを定義し、ログメッセージをさまざまなデスティネーションにルーティングすることができ、特定のアプリケーション要件に応じたログの設定が可能です。




