透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
コンソールアプリケーションは、グラフィカルユーザーインターフェイスがないにもかかわらず、エラーの追跡、アプリケーションのパフォーマンス監視、および効率的なデバッグのために、しばしば強力なログ機構を必要とします。 Prism.Plugin.Logging は、Prism Logging フレームワークの拡張機能で、さまざまなログプロバイダーをサポートする .NET アプリケーション向けの包括的なログ ソリューションを提供します。
この記事では、PDF ドキュメントを扱う強力な .NET ライブラリであるIronPDFを使用して、コンソール アプリケーションにPrism Loggingを統合する方法を探ります。 これらのツールを組み合わせることで、開発者はコンソールアプリケーションに高度なロギング機能を実装し、メンテナンスおよびトラブルシューティングの機能を強化できます。
Prism.Plugin.Logging は、XAMLアプリケーションを構築するための人気のあるフレームワークであるPrismを拡張し、包括的なログ機能を提供します。 NLog、Serilog、Microsoft.Extensions.Loggingなど複数のロギングプロバイダーをサポートしているため、Prism.Plugin.Loggingはさまざまなアプリケーション要件に対応する柔軟性とカスタマイズオプションを提供します。
柔軟なロギング構成: Prism.Plugin.Loggingを使用すると、開発者はNLog、Serilog、Microsoft.Extensions.Loggingといった人気のあるオプションを含む様々なロギングプロバイダーをシームレスに構成できます。
構造化ログのサポート: 開発者はPrism.Plugin.Loggingを使用して、メッセージと共に構造化データをログに記録できます。 この機能は、IronPDFによって生成されるログ報告書にタイムスタンプ、エラーコード、ユーザーの活動などの包括的なコンテキストデータを記録し追加する必要があるコンソールアプリケーションに関わるシナリオで特に役立ちます。
新しいC#プロジェクトを作成する
Prism ロギング パッケージをインストールします。
SyslogLoggerのオブジェクトを作成し、パラメータとして構成を渡します。
ログメソッドを必要に応じて呼び出し、ログメッセージとログレベルを渡します。
C#プロジェクトにPrismを統合するのは簡単です。 Prismを追加するには、Microsoftの.NETパッケージマネージャーであるNuGetを利用する必要があります。 Prism Logsをプロジェクトに組み込むために必要なツールとライブラリはこのライブラリによって提供されます。
Prism は、Windows フォーム (WinForms) および Windows コンソールを含む、いくつかの Dot .NET アプリケーションタイプと互換性があります。 各フレームワークの実装方法は異なりますが、基本的な概念は常に同じであり、アプリケーションに関連するデータのログ記録を支援します。
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
ログレポートはPrism Loggingから生成されます。 私たちは、Prismログを監視するためにKiwi Syslog Service Managerというツールを使用しています。
Prism.Plugin.Prismのロギング機能は、ロギングを通じてさらに機能性と柔軟性を拡張します。 それは、ログレベル、ログターゲット、および他の変数を調整するための様々な構成オプションを提供し、アプリケーションのログのニーズに対応します。
Prism.Plugin.Loggingを使用すれば、ログメッセージをコンソール、ファイル、データベース、およびその他のログサービスなど、さまざまな場所にルーティングすることができます。 この柔軟性のおかげで、アプリケーションの要件や環境に最適なロギングターゲットを選択することができます。
プラグインを使用すると、PrismのILoggerFacadeインターフェースを実装してカスタムロガーを構築できます。 これにより、アプリケーションのニーズに基づいてカスタムロギング機能を構築したり、サードパーティのロギングフレームワークと連携することができます。
プリズムログは数行のコードで簡単に作成できます。 以下はログを作成するサンプルです。
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)
PrismとIronPDFをC#プロジェクトで組み合わせると、いくつかのエキサイティングな可能性が広がります。 IronPDFは、このコンテンツをPDFに変換するための素晴らしいツールです。Prismはログを操作するための優れたツールですが、それでもIronPDFは優れています。 プログラマーは、この接続性を利用して、アイテムをカスタムデザインのPDFドキュメントにログインするアプリを作成できます。
Prismログを利用するWindowsコンソールアプリケーションを作成することにより、ユーザーはプログラム内のログにアクセスすることができます。 このコントロールは、ログを作成するためのスペースを十分に残してコンソール上にフィットする必要があります。 サーバーログ操作とHTTPログを追加します。
「ツール」 > 「NuGet パッケージ マネージャー」 > 「パッケージ マネージャー コンソール」を選択します。
Install-Package IronPdf
Install-Package IronPdf
IronPDFをインストールするもう一つの方法は、NuGetパッケージマネージャーを使うことです。
IronPDFの機能、互換性、その他のダウンロードオプションについて詳しく知るには、NuGetのウェブサイトのhttps://www.nuget.org/packages/IronPdfにあるIronPDFのページをご覧ください。
あるいは、IronPDFをプロジェクトに直接組み込むには、DLLファイルを使用する方法があります。DLLを含むZIPファイルをダウンロードするには、このリンクをクリックしてください。 解凍後、プロジェクトにDLLを含めてください。
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
以下は、IronPDFによって生成された画像ログレポートです。
IronPDFのコードリファレンスについて詳しく知るには、こちらを参照してください。
Prism.Plugin.Logging と IronPDF の統合により、開発者はターミナルアプリに広範なロギング機能を簡単に組み込むことができます。開発者は両ツールの機能を活用することで、全体的なプログラムメンテナンスを改善し、デバッグ機能を最適化し、ロギング操作を迅速化できます。 Prism.Plugin.Loggingは、コンソールアプリケーションが完全なログ記録範囲を得られるようにし、適切な実装とセットアップを行うことで、強力な監視およびトラブルシューティング機能を保証します。
IronPDFは、永久ライセンス、1年間のソフトウェアメンテナンス、およびライブラリアップグレードが含まれる$749 Liteバンドルの永続ライセンスを提供します。 IronPDFは、時間および再配布に関する制限があるものの、開発目的での無料ライセンスを提供しています。 無料試用版を取得するには。 さまざまなIron Software製品の詳細については、ウェブサイトリンクをご覧ください。