フッターコンテンツにスキップ
.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 ロギング (開発者向けの仕組み): 図 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; }
        }
    }
}
$vbLabelText   $csharpLabel

ログレポートはPrism Loggingから生成されます。 私たちは Prism ログを監視するために Kiwi Syslog Service Manager というツールを使用しています。

出力 Prism ログファイル

Prism Logging(開発者向けの仕組み):図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);
$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 Logging(開発者向けの仕組み):図5 - 管理NuGetパッケージソリューションを使用して、IronPDFを検索バーで検索し、プロジェクトを選択してインストールボタンをクリックしてIronPDFをインストールします。

  • 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}");
}
$vbLabelText   $csharpLabel

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

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

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

結論

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

IronPDFは、Lite bundleの永続ライセンスを提供しており、その中には永久ライセンス、1年のソフトウェアメンテナンス、およびライブラリのアップグレードが含まれています。 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)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。