.NET ヘルプ

NLog C# (開発者向けの使い方)

Kannaopat Udonpant
カンナパット・ウドンパント
2023年10月30日
共有:

ログ記録はソフトウェア開発において重要な側面です。 開発者がアプリケーションの動作を追跡し、問題をトラブルシューティングし、さまざまな環境でコードがどのように動作しているかについての洞察を得るのに役立ちます。 NLogは、C#用の人気のあるログフレームワークで、アプリケーションに堅牢で柔軟なログ機能を簡単に実装することができます。 この包括的なガイドとチュートリアルでは、C#でのNLogの世界を探求します。

NLogとは何ですか?

もちろんです。テキストを提供してください。

NLog.NETおよび.NET Coreアプリケーション向けの無料でオープンソースのロギングライブラリです。 それは、アプリケーション内のメッセージをログに記録するための柔軟で高度に構成可能な方法を提供します。 NLogは、その性能、拡張性、および使いやすさから、.NETエコシステムで広く使用されている無料のロギングプラットフォームです。

NLogの使用開始

以下の内容を日本語に翻訳してください:

NLogは、ASP.NET Webアプリケーション、ASP.NET WEB API、Windowsフォームアプリケーション、ASP.NET MVCアプリケーションなど、必要に応じてあらゆる種類のアプリケーションに使用することができます。 次のユースケースをすべて示すために、コンソールアプリケーションを使用します。

nLog Nugetパッケージをインストールする

NLogを使用開始するには、プロジェクトにNLog NuGetパッケージをインストールする必要があります。 以下の手順で、Visual StudioのNuGetパッケージマネージャーを使用してこれを行うことができます:

  1. 「ツール」メニューから「NuGet パッケージ マネージャー」を選択し、「ソリューションの NuGet パッケージの管理」を選びます。

  2. あるいは、ソリューションエクスプローラーでプロジェクトを右クリックし、「NuGet パッケージの管理」を選択し、「参照」を選びます。

  3. NuGetパッケージマネージャーウィンドウで「参照」タブをクリックし、検索ボックスに「NLog」と入力してください。

  4. 検索結果にNLogパッケージが表示されるはずです。 クリックして選択してください。

  5. NuGetパッケージマネージャーウィンドウの右側には、ソリューション内のプロジェクトのリストがあります。 プロジェクトを選択(s)NLogをインストールしたい場所。

  6. バージョンのドロップダウンから希望するNLogパッケージのバージョンを選択してください。 最新の安定版または必要に応じて特定のバージョンを選択できます。

  7. プロジェクトを選択した後(s)そのバージョンを選択し、「インストール」ボタンをクリックしてインストールプロセスを開始します。

    NuGet パッケージ マネージャーは NLog とその依存関係をダウンロードおよびインストールします。 出力ウィンドウに進行状況が表示されます。

    NLogはあなたのプロジェクトに正常にインストールされ、C#コード内でログ記録に使用し始めることができます。

NLogの構成ファイルを作成する

NLog構成ファイルを作成する(通常は nlog.config と名付けられます)、次の手順に従うことができます。 この設定ファイルは、アプリケーション内でNLogの動作を指定するためのものです。ログのターゲット、レイアウトレンダラー、ルールなどが含まれます。

プロジェクト内で、設定ファイルを作成したいプロジェクトまたは目的のフォルダーを右クリックします。

  1. 「追加」>「新しい項目...」を選択

  2. 「新しいアイテムの追加」ダイアログで、「XMLファイル」または「XML」を検索し、選択します。

  3. ファイルをnlog.configと名付け、「追加」ボタンをクリックしてください。

    Nlog Csharp Guide 1 related to NLogの構成ファイルを作成する

  4. 新しく作成されたnlog.configファイルをテキストエディタまたはXMLエディタで開きます。

  5. 以下の設定をNLog.XMLファイルに追加します。以下は、メッセージをコンソールターゲットにログする基本的なNLog設定の例です。 この構成ファイルは、あなたのニーズに合わせてカスタマイズできます。

設定ファイル

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <!-- Define targets -->
  <targets>
    <!-- Log to a file -->
    <target name="console" xsi:type="Console" layout="${longdate}
${message}"/>
  </targets>

  <!-- Define rules -->
  <rules>
    <!-- All messages with a minimum log level of Debug or higher are written to the Console -->
    <logger name="*" minlevel="Debug" writeTo="Console" />
  </rules>

</nlog>
XML

あなたのC#コード内で、nlog.configファイルからNLogの設定を読み込むことを確認してください。通常、これはASP.NET CoreのStartup.csなどのアプリケーションのスタートアップコードで行います。(.NET 5同等またはそれ以前のバージョン)program.csファイル(.NET 6以降のバージョン用)またはコンソールアプリケーションのMainメソッド:

internal class Program
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    static void Main(string [] args)
    {
        logger.Debug("This is Debug Message");
        Console.Read();
    }
}
internal class Program
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    static void Main(string [] args)
    {
        logger.Debug("This is Debug Message");
        Console.Read();
    }
}

上記プログラムの出力は以下の通りです:

Nlog Csharp Guide 2 related to 設定ファイル

この例では、Loggerクラスのインスタンスを作成し、それを使用してデバッグレベルでメッセージをログに記録します。 NLogがサポートしているトレーシングレベルを見てみましょう。

ログレベル

NLogは、それぞれ独自の重要性を持ついくつかのログレベルをサポートしています:

  1. トレース: 通常、診断目的で使用される最も詳細なレベル。

  2. デバッグ: 開発中に役立つデバッグ情報に使用されます。

  3. 情報: アプリケーションの動作に関する一般情報。

  4. 警告: アプリケーションの動作を妨げない潜在的な問題を示します。

  5. エラー:アプリケーションがクラッシュするわけではありませんが、調査が必要な失敗を示します。

  6. 致命的: 直ちに対処すべき重大な障害を示します。

    これらのレベルにログメッセージを分類することにより、その重要度に基づいて簡単にフィルタリングおよび優先順位付けを行うことができます。

    以下のように、nLog.Configファイルのrulesタグにminlevel="Trace"を設定します。

<rules>
  <!-- All messages with a minimum log level of Trace or higher are written to the Console -->
  <logger name="*" minlevel="Trace" writeTo="Console" />
</rules>
XML

すべてのトレースレベルのメッセージをログに記録するコードを書きましょう。

internal class Program
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    static void Main(string [] args)
    {
        logger.Trace("This is Trace Message");
        logger.Debug("This is Debug Message");
        logger.Info("This is Info Message");
        logger.Warn("This is Warning Message");
        logger.Error("This is Error Message");
        logger.Fatal("This is Fatal Message");
        Console.Read();
    }
}
internal class Program
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    static void Main(string [] args)
    {
        logger.Trace("This is Trace Message");
        logger.Debug("This is Debug Message");
        logger.Info("This is Info Message");
        logger.Warn("This is Warning Message");
        logger.Error("This is Error Message");
        logger.Fatal("This is Fatal Message");
        Console.Read();
    }
}

以下に示すように、当プログラムはコンソールにメッセージを記録しました。

nlog ログメッセージ

コンソールでメッセージをログに記録する例を示しました。次に、NLogターゲットを設定してファイルにメッセージをログに記録します。

ファイル内のログメッセージ

ファイルロギングのために、設定ファイル内でコンソールターゲットの代わりにファイルターゲットを設定する必要があります。

  <targets>
  <target xsi:type="File" name="fileTarget" fileName="D:\Logs\mylog.txt" layout="${longdate} ${level:uppercase=true} ${message}" />
</targets>

<rules>
  <logger name="*" minlevel="Trace" writeTo="fileTarget" />
</rules>
XML

さて、プログラムを実行してメッセージをファイルに記録します。

Nlog Csharp Guide 4 related to ファイル内のログメッセージ

ログターゲット

NLogはさまざまなログ出力ターゲットをサポートしており、ログメッセージの保存場所を選択することができます。 一般的なターゲットには以下が含まれます:

  1. ファイル:1つ以上のファイルにメッセージをログします。

  2. コンソール: メッセージをコンソールにログします。

  3. データベース:メッセージをデータベースに記録します(SQL Server、MySQL、Oracle、PostgreSQLなど。)テーブル

  4. メール: ログメッセージをメールとして送信します。

  5. イベントログ: メッセージをWindowsイベントログに記録します。

  6. カスタムターゲット: 特定のニーズに合わせたカスタムログターゲットを作成できます。

    NLogを構成して、複数のターゲットを同時に使用することができます。

IronPDFの紹介

IronPDFについてさらに調べるは、C# および VB.NET アプリケーションにおけるPDF処理を簡素化する強力な .NET ライブラリです。 これは、PDFドキュメントの作成、編集、および操作のための強力な機能を提供し、またHTMLコンテンツをPDF形式に変換することができるため、ウェブ開発、レポート作成、および文書管理を含む幅広い業界の開発者にとって不可欠なツールです。

IronPDFの際立った機能はそのHTMLをPDFに変換レイアウトとスタイルを保持する関数です。 それはウェブコンテンツからPDFを生成し、レポート、請求書、ドキュメントに最適です。 HTMLファイル、URL、HTML文字列は簡単にPDFに変換できます。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

ログ機能を使用してPDFを生成しましょう。

ログ機能付きPDF生成

最初のステップは、IronPDFライブラリをプロジェクトにインストールすることです。 これをVisual StudioのNuGetパッケージマネージャーを使用して、またはNuGet CLI経由で行うことができます。 プロジェクトを開き、パッケージ マネージャー コンソールに次のコマンドを書き込んでください。

Install-Package IronPdf

このコマンドは、必要なすべての依存関係を含むIronPDFをプロジェクトにインストールします。

以下のコードを書いて、ログ記録付きでHTMLからPDFファイルを生成します。

private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string [] args)
{
    logger.Info("Initializing Chrome PDF Renderer");
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    logger.Info("Creating PDF From HTML String");
    var pdf = renderer.RenderHtmlAsPdf("<h1>This is my Sample PDF<h1>");
    logger.Info("Saving PDF File");
    pdf.SaveAs(@"D:\myPDF.pdf");
}
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string [] args)
{
    logger.Info("Initializing Chrome PDF Renderer");
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    logger.Info("Creating PDF From HTML String");
    var pdf = renderer.RenderHtmlAsPdf("<h1>This is my Sample PDF<h1>");
    logger.Info("Saving PDF File");
    pdf.SaveAs(@"D:\myPDF.pdf");
}

上記のコードスニペットは、以下に示すようにファイルにログメッセージが含まれたPDFファイルを作成します。

ログおよびPDFファイル

Nlog Csharp Guide 5 related to ログおよびPDFファイル

結論

結論として、NLogはC#アプリケーションにおいて効果的なロギングのための不可欠なツールとして登場し、開発者に対してログデータのキャプチャ、分類、および管理のための堅牢なフレームワークを提供しています。 その柔軟性と使いやすさから、さまざまな分野でのロギングのニーズに最適な選択肢となっています。 さらに、IronPDFのような補完的なライブラリーと組み合わせることで、.NETアプリケーションでのPDF生成や操作が簡単になり、開発者はPDFベースのログやレポートの作成を含む管理機能を拡張することができます。 言及する価値があるのは、IronPDF が提供することですIronPDFの無料トライアルはこちらその機能をテストするために。 ご要件を満たす場合、以下のオプションを選択できます。IronPDFの商用ライセンス、特にPDF関連機能のためのプロジェクトへのシームレスな統合をサポートし、IronPDFの機能への継続的なアクセスと追加の利点を提供します。

NLogとIronPDFの強力な機能を組み合わせて使用することにより、開発者はアプリケーションの動作についての洞察を得るだけでなく、レポートやドキュメント管理プロセスも強化できます。これにより、ソフトウェアが効率的で保守しやすく、構造化されたログ記録が十分に文書化された状態を維持できます。

Kannaopat Udonpant
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
C# 参照キーワード (開発者向けの動作方法)
次へ >
エンティティフレームワーク C#(開発者向けの仕組み)