こんばんは。せんです。
今回から、NLogを使ってログ出力する方法をまとめていきます。
ログ出力と言えば、現在定番なのはこのNLogとlog4netだそうで。
ゴールはまだまだ先ですが、両者を比較するところまで整理したいなと思っています。
NLog編はこんな構成でお届けする予定です。
① インストール、基本の設定、出力確認(→今回)
② レイアウトの編集
③ ローリングとアーカイブ
はじめに
NLogの公式サイトを見てみます。
2006年にv1.0がリリースされており、現在16年半の歴史を持っています。
”柔軟で自由度の高い.NET向けオープンソースロギング”となっていて、簡単に導入できるところがポイントのようです。
.NET Framework3.5-4.8、.NET5-6などをサポートしています。
(ドキュメントにはないですが2023年3月9日時点で.NET 7もサポートされていました。)
さっそく、インストールしてみましょう!!
今回は、Visual Studio 2022でコンソールアプリケーションを作ることにしました。
「新しいプロジェクトの作成」を選び、
「コンソールアプリ(.NET Framework)」を選んで次に進みます。
プロジェクト名は「UseNLogSample」としました。
フレームワークは最初に「.NET Framework4.7.2」が表示されました。
これはNLogのサポート対象なので、このまま進みます。
「作成」をクリック。
プロジェクトが作成されました。
ここから、NLogのパッケージをインストールします。
ソリューションエクスプローラでプロジェクト名を右クリックし、「NuGetパッケージの管理」を選択します。
こんな感じの画面が表示されます。
左上側の「参照」というところをクリックし、検索ボックスに「NLog」と入力します。
一番上に表示されたNLogというパッケージをインストールします。
ここでサポート情報も確認できます。
バージョンのプルダウンリストを確認すると、これまでのバージョンも選択できるようになっています。
今回は最新の安定版のまま「インストール」ボタンをクリックします。
以下のような画面が表示されたら、「OK」を選びます。
インストールが終了しました。
終了したことは出力ウインドウでも確認できます。
基本の設定を行います
続いて、ログ出力設定を編集します。
①NLog.configというファイルを新規作成するか
②App.configを編集するか
どちらか選びます。
①のメリットは、このファイルだけ再利用することができる。
②のメリットは、ファイル数が増えない。
という感じでしょうか。
今回は②を選び、App.configを編集します。
以下リンクは、公式のドキュメントです。
https://github.com/nlog/NLog/wiki/Configuration-file
(編集後)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logFile"
xsi:type="File"
encoding="UTF-8"
fileName="logs/${processname}.log"
layout="${date} [${level}] -${message}" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logFile" />
</rules>
</nlog>
</configuration>
これで設定ファイルの編集ができました。
次にProgram.csを編集します。
(編集後)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NLog;
namespace UseNLogSample
{
public class Program
{
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
logger.Info("NLogでinformationログを出力します。");
logger.Warn("NLogでwarningログを出力します。");
logger.Error("NLogでerrorログを出力します。");
}
}
}
それではいざ、実行!!
プロジェクトをビルドしてUseNLogSample.exeを実行します。
実行フォルダにlogsフォルダが生成されました。
さらに、この下にUseNLogSample.logが生成されています。
ファイルを開くと、以下の通りログが出力されていました!!
出力レイアウトをかなりシンプルにしたので、メッセージの文頭が揃っていないことに注目です。
このあたりは次回の内容で詳しく見ていきます。
まとめ
今回は
・NLogのNuGetパッケージをインストールする
・App.configとProgram.csを編集する
・プログラムを実行してログファイルを確認する
ところまで進みました。
この記事を書きながら、App.config
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
の部分で、configSectionsとstartupの順番を逆にすると出力できないことを勉強しました。
次回は出力レイアウトを編集し、結果を比べていきたいと思います。
ご覧いただいてありがとうございました。
0 件のコメント:
コメントを投稿