【C#】ロギジングライブラリのNLogを使ってみた
仕事でLog出力も備えたアプリを作成する必要があったので、メジャーどころ(?)なNLogを使ってみた。
これは便利!(っていっても他のものを使ったことが無いので、比較的なことはできてないけど)
公式
VisualStudioであれば基本的にNuGetでOKかと。
NuGetからPacage-Installを実施すると、DLLとNLog用コンフィグファイルが最初から作成されます。
参照だけ加えた場合は、NLogコンフィグファイルを別途手動で作成する必要があるので要注意。 以下のような感じになります。
雑感
特に便利そうだなぁと思ったものとしては、公式にも記載されているとおり、出力先の多様さと簡単さだと思う。 Logファイルに出力するもよし、EventLog、E-mail、データベースもサポート。 基本的にはLogファイルで、特殊エラーケースではEventLogとEmailを併用するとかもいいかも。
コード
最初に必ず、NLog.ConfigファイルでLog出力ルールを定義する必要があります。
<?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"> <targets> <target name="logfile" xsi:type="File" fileName="file.txt" /> </targets> <rules> <logger name="*" minlevel="Info" writeTo="logfile" /> <logger name="*" minlevel="Trace" writeTo="logfile" /> </rules> </nlog>
ログ出力用のメソッドは6種類。今回はInfoとTraceを定義して、使用してみました。 基本的にはどれも動作は変わらず? 上記XMLのルール付によってそれぞれの動作内容を定義する感じ。
・Fatal ・Error ・Warn ・Info ・Debug ・Trace
C#コードは以下の様な感じ。
using System; using NLog; public class MyClass { private static Logger logger = LogManager.GetCurrentClassLogger(); static void Main(string[] args) { Console.WriteLine("Start Log Test"); logger.Trace("Trace Log Test"); logger.Info("Info Log Test"); } }
今回は普通のテキストファイルに出力してみたので、↓のような感じになりますよい。