.NetFrameworkでNlog(Nlog.config)を使う
.NetFramework4.5でNlogを使ってみた。
- サンプルアプリは、CreateASP.NET MVC Application を作った。
- IDEはVisual Studio2019
手順は以下の通り。
1. NugetパッケージマネージャーでNlogをインストールする
2. NLog.configを設定する
3. ターゲットClassにコーディングする
1. NugetパッケージマネージャーでNlogをインストールする
インストールするパッケージは以下の通り。
- NLog
- NLog.Config
- NLog.Schema(NLog.Configと同時にインストールされる)
2. NLog.configを設定する
NLog.configは以下の通り
<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<targets>
<target xsi:type="File" name="logfile" fileName="./logs/${shortdate}.log"
encoding="UTF-8"
archiveFileName="${basedir}/logs/archives/archive.{#}.log"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="7"
layout="${longdate},${uppercase:${level}},${callsite},${callsite-linenumber},${message}" />
<target xsi:type="Debugger" name="debugger" layout="${longdate} ${uppercase:${level}}|${callsite}|${callsite-linenumber}|${message}|${stacktrace}" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile" />
<logger name="*" minlevel="Trace" writeTo="debugger" />
</rules>
</nlog>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<targets>
<target xsi:type="File" name="logfile" fileName="./logs/${shortdate}.log"
encoding="UTF-8"
archiveFileName="${basedir}/logs/archives/archive.{#}.log"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="7"
layout="${longdate},${uppercase:${level}},${callsite},${callsite-linenumber},${message}" />
<target xsi:type="Debugger" name="debugger" layout="${longdate} ${uppercase:${level}}|${callsite}|${callsite-linenumber}|${message}|${stacktrace}" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile" />
<logger name="*" minlevel="Trace" writeTo="debugger" />
</rules>
</nlog>
3. ターゲットClassにコーディングする
Loggerを定義して、Logを貼りまくる。
HomeController.csは以下の通り。
using NLog;
namespace WebMVC.Controllers
{
public class HomeController : Controller
{
public static Logger logger = LogManager.GetCurrentClassLogger();
public ActionResult Index()
{
logger.Trace("trace log message");
logger.Debug("debug log message");
logger.Info("info log message");
logger.Warn("warn log message");
logger.Error("error log message");
logger.Fatal("fatal log message");
return View();
}
namespace WebMVC.Controllers
{
public class HomeController : Controller
{
public static Logger logger = LogManager.GetCurrentClassLogger();
public ActionResult Index()
{
logger.Trace("trace log message");
logger.Debug("debug log message");
logger.Info("info log message");
logger.Warn("warn log message");
logger.Error("error log message");
logger.Fatal("fatal log message");
return View();
}
これでファイルと、デバッグコンソールに出力される。
(参考)
→Nlogの基本的な使い方が記載されて便利。
→Nlog.confの基本的な記述方法が記載されてて便利。
→NLogの構成が説明されてて便利。
→Visual StudioのDebugコンソールへの出力方法が記載されてる。
→Log messageの詳細が記載されている。
コメント
コメントを投稿