(1) C#でNLogライブラリを用いてログ出力を行う方法
(1-1) NLogの概要
(1-2) NLogの導入手順
(1-3) NLogの初期実装手順
(1-4) NLogのサンプルプログラム
(1) C#でNLogライブラリを用いてログ出力を行う方法
(1-1) NLogの概要
ログレベルは6種類(Fatal、Error、Warn、Info、Debug、Trace)が設定可能で、ログの重要性に応じてレベルを使い分けます。
本記事ではNLogの導入手順および実際のサンプルプログラムをご紹介します。
(1-2) NLogの導入手順
NLogを使うためにはライブラリの導入を行います。
(1-2-1) Nlogライブラリのダウンロード
ソリューションを開いた状態で、Visual Studioのメニュー「ツール」⇒「NuGetパッケージマネージャー」⇒「パッケージマネージャーコンソール」と選択します。
(図121)
次のコマンドを実行してNlogを導入します。
Install-Package NLog.Config
(図122)①
↓
(図122)②
③正常終了確認
「正常にインストールされました」のメッセージとともに、再びパッケージマネージャーが入力待ちの状態になったらインストール完了です。
(図123)
(1-3) NLogの初期実装手順
NLogパッケージの導入が完了すると、プロジェクト配下に数個ファイルが追加されていると思いますが、まずはこの中の「nlog.config」にログ出力の設定を追記します。
①nlog.configの追記
(a) <targets>タグの配下に以下のコードを追加します。
(追記コード)
<target name="file" xsi:type="File" fileName="C:\[ログ出力先パス]\NLog.log" layout="${longdate}|${message}"/> <target xsi:type="ColoredConsole" name="colored_console"/> <target name="console" xsi:type="Console" layout="${longdate}|${message}"/>
1つ目の<target>は「type=”File”」となっており、 ファイル形式でログを出力するための設定になります。
2つ目の<target>は「type=”ColoredConsole」で、cmdのコンソールに色つきのログ出力をするための設定です。
3つ目の<target>は「type=”Console”」となっており、cmdのコンソールにログ出力するための設定です。
(図131)
(b) <rules>タグの配下に以下のコードを追加します。
(追記コード)
<logger name="*" minlevel="Trace" writeTo="file,colored_console" />
この記述は「targetに定義した出力先のどれを有効化するか?」の設定になります。「writeTo=」で「file」と「colored_console」を指定しているため、この二種類のログが記録されます。
(図132)
②C#コードへの記述
C#側では「Logger」クラスのインスタンスを作成します。
Logger log = LogManager.GetCurrentClassLogger();
あとはその中で使える「Debug」や「Info」や「Error」などのログを出力するのみです。引数に任意のメッセージを与えます。
log.Debug("This is a debug message Rainbow"); log.Info("This is a info message Rainbow"); log.Error("This is a error message Rainbow");
(図133)
(1-4) NLogの実行結果サンプル
上記の「初期実装手順」に沿って記述したサンプルプログラムと、その実行結果のサンプルをご紹介します。
(サンプルプログラム)
using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RP_IT0175_NlogTesting_ConsoleApp2 { class Program { static void Main(string[] args) { Logger log = LogManager.GetCurrentClassLogger(); log.Debug("This is a debug message Rainbow"); log.Info("This is a info message Rainbow"); log.Error("This is a error message Rainbow"); } } }
(図141)実行結果
「colored_console」の結果は色つきのメッセージが表示される。
(図142)
「file」の結果は指定したパスにログファイルを生成します。