ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
コンソールアプリケーションは、グラフィカルユーザーインターフェイスがないにもかかわらず、エラーの追跡、アプリケーションのパフォーマンス監視、および効率的なデバッグのために、しばしば強力なログ機構を必要とします。 Prism.Plugin.LoggingPrism Loggingフレームワークの拡張機能であるこのソリューションは、さまざまなログプロバイダーのサポートを含む.NETアプリケーションのための包括的なログソリューションを提供します。
この記事では、Prism Loggingをコンソールアプリケーションに統合する方法について検討しますIronPDFPDFドキュメントを操作するための強力な.NETライブラリ。 これらのツールを組み合わせることで、開発者はコンソールアプリケーションに高度なロギング機能を実装し、メンテナンスおよびトラブルシューティングの機能を強化できます。
Prism.Plugin.LoggingPrismは、XAMLアプリケーションを構築するための人気フレームワークであり、包括的なロギング機能を提供することで拡張されます。 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 Formsを含む多数のDot .NETアプリケーションタイプと互換性があります。(WinForms)およびWindowsコンソール。 各フレームワークの実装方法は異なりますが、基本的な概念は常に同じであり、アプリケーションに関連するデータのログ記録を支援します。
Visual Studioアプリケーションで「ファイル」メニューを選択します。 「新しいプロジェクト」をクリックし、「コンソールアプリケーション」を選択します。
ファイルの場所を選択した後、指定されたテキスト領域にプロジェクト名を入力してください。 次に、以下のサンプルに示すように、作成ボタンをクリックして必要な.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
ログレポートは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と一緒にIronPDFC#プロジェクトでの可能性が広がります。 IronPDFは、このコンテンツをPDFに変換するための素晴らしいツールです。Prismはログを操作するための優れたツールですが、それでもIronPDFは優れています。 プログラマーは、この接続性を利用して、アイテムをカスタムデザインのPDFドキュメントにログインするアプリを作成できます。
Prismログを利用するWindowsコンソールアプリケーションを作成することにより、ユーザーはプログラム内のログにアクセスすることができます。 このコントロールは、ログを作成するためのスペースを十分に残してコンソール上にフィットする必要があります。 サーバーログ操作とHTTPログを追加します。
Open the
開くビジュアルスタジオプロジェクト
「ツール」 > 「NuGet パッケージ マネージャー」 > 「パッケージ マネージャー コンソール」を選択します。
Install-Package IronPdf
IronPDFをインストールするもう一つの方法は、NuGetパッケージマネージャーを使うことです。
IronPDFの機能、互換性、その他のダウンロードオプションについて詳しく知るには、NuGetのウェブサイトのhttps://www.nuget.org/packages/IronPdfにあるIronPDFのページをご覧ください。
あるいは、DLLファイルを使用してIronPDFをプロジェクトに直接組み込むこともできます。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は、永続ライセンスである¥749のLiteバンドルを提供しており、永久ライセンス、1年間のソフトウェアメンテナンス、およびライブラリのアップグレードが含まれます。 IronPDFは、時間および再配布に関する制限があるものの、開発目的での無料ライセンスを提供しています。 取得するには無料試用. 以下の製品に関する詳細情報については、Iron Software の 公式ウェブサイトをご覧くださいウェブサイトリンク。
9つの .NET API製品 オフィス文書用