NLog使用示例

環境

Visual Studio 2017, NLog 4.6.8

程序

using System;
using System.Threading;
using System.Threading.Tasks;
using NLog;

namespace TestUseNLog
{
    class Program
    {
        static void logInAnotherThread()
        {
            Thread.CurrentThread.Name = "子線程";
            oLogger.Trace("追蹤信息");
            oLogger.Debug("調試信息");
            oLogger.Info("記錄信息");
            oLogger.Warn("警告信息");
            oLogger.Error("錯誤信息");
            oLogger.Fatal("致命信息");
        }

        static void Main(string[] args)
        {
            Thread.CurrentThread.Name = "主線程";

            try
            {
                oLogger = NLog.LogManager.GetLogger("LG1");

                //創建日誌配置
                var oLogCfg = new NLog.Config.LoggingConfiguration();
                var oLogFile = new NLog.Targets.FileTarget()
                {
                    FileName = "Test.log",
                    Layout = "${longdate} | ${level:uppercase=true} | 線程:${threadname} | ${callsite}:${callsite-linenumber} | ${message} ${exception:format=tostring}",
                };
                oLogCfg.AddRule(LogLevel.Trace, LogLevel.Fatal, oLogFile);

                // Apply config           
                NLog.LogManager.Configuration = oLogCfg;

                //輸出日誌
                oLogger.Trace("追蹤信息");
                oLogger.Debug("調試信息");
                oLogger.Info("記錄信息");
                oLogger.Warn("警告信息");
                oLogger.Error("錯誤信息");
                oLogger.Fatal("致命信息");
                var tsk = Task.Factory.StartNew(logInAnotherThread);
                throw new Exception("測試拋出異常");
            }
            catch (Exception ex)
            {
                oLogger.Error(ex, "運行出現異常");
            }
        }

        private static Logger oLogger = null;
    }
}

輸出

2019-11-09 19:27:33.1092 | TRACE | 線程:主線程 | TestUseNLog.Program.Main:42 | 追蹤信息 
2019-11-09 19:27:33.2635 | DEBUG | 線程:主線程 | TestUseNLog.Program.Main:43 | 調試信息 
2019-11-09 19:27:33.2787 | INFO | 線程:主線程 | TestUseNLog.Program.Main:44 | 記錄信息 
2019-11-09 19:27:33.2912 | WARN | 線程:主線程 | TestUseNLog.Program.Main:45 | 警告信息 
2019-11-09 19:27:33.3046 | ERROR | 線程:主線程 | TestUseNLog.Program.Main:46 | 錯誤信息 
2019-11-09 19:27:33.3161 | FATAL | 線程:主線程 | TestUseNLog.Program.Main:47 | 致命信息 
2019-11-09 19:27:33.4452 | ERROR | 線程:主線程 | TestUseNLog.Program.Main:49 | 運行出現異常 System.Exception: 測試拋出異常
   在 TestUseNLog.Program.Main(String[] args) 位置 F:\Code\TestUseNLog\TestUseNLog\Program.cs:行號 49
2019-11-09 19:27:33.4452 | TRACE | 線程:子線程 | TestUseNLog.Program.logInAnotherThread:13 | 追蹤信息 
2019-11-09 19:27:33.4862 | DEBUG | 線程:子線程 | TestUseNLog.Program.logInAnotherThread:0 | 調試信息 
2019-11-09 19:27:33.4862 | INFO | 線程:子線程 | TestUseNLog.Program.logInAnotherThread:0 | 記錄信息 
2019-11-09 19:27:33.5082 | WARN | 線程:子線程 | TestUseNLog.Program.logInAnotherThread:0 | 警告信息 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章