2012年12月29日 星期六

NLog 初體驗

先簡單介紹一下如何安裝NLog這個套件,和使用預設的設定檔來寫出Log
首先讓環境簡單點,所以開一個主控台專案來當範例

接下來引用NLog最簡單的方式當然就是用NuGet安裝了
如果對NuGet不熟的話,可以參考之前的NuGet學習筆記
NLog這個套件是NLog.dll元件本身
NLog.Config這個套件是NLog.config和NLog.xsd(用來幫助在設定檔中的IntelliSense)

安裝好後,專案中就會多了這三個東西


打開設定檔,把註解拿掉,先使用預設值來體驗一下
詳細的設定方式,之後再介紹

<?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">
    <!--
  See http://nlog-project.org/wiki/Configuration_file
  for information on customizing logging rules and outputs.
   -->
    <targets>
        <!-- add your targets here -->
        <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate} ${uppercase:${level}} ${message}" />
    </targets>
    <rules>
        <!-- add your logging rules here -->
        <logger name="*" minlevel="Trace" writeTo="f" />
    </rules>
</nlog>

呼叫NLog的方式也很簡單,直接用LogManager來引用就行了
寫Log的方式也很直覺,總共有六個層級,都寫一個試試看

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NLog;

namespace NLogApp
{
    class Program
    {
        // 引用NLog
        static Logger log = LogManager.GetCurrentClassLogger();

        static void Main(string[] args)
        {
            // 每個層級都寫一個試試看
            log.Trace("trace");
            log.Debug("debug");
            log.Info("info");
            log.Warn("warn");
            log.Error("error");
            log.Fatal("fatal");
        }
    }
}

這裡需要注意一下,如果是App專案的話,NLog.config這個檔案的屬性
複製到輸出目錄要確定是在永遠複製這個選項
這樣Run的時後執行檔和設定檔在同一個目錄才會有作用

編譯成功就執行一下,如果沒有權限問題的話,在執行檔下面就會寫出一個log檔
也會看到NLog.config複製到這裡
記得要按一下方案總管中的顯示所有檔案,才會看到不在專案中的檔案喔

打開log檔,裡面就是剛寫的那六個層級的log,使用上就是這麼簡單

下一篇:NLog Config