- 專案檔中會有下列兩個檔案
- NLog.config 資訊
- targets
- 定義 Log 要存放的 type 為何
- 定義 Log 內容格式
- 可設定多組 target
- rules
- 定義各種 Level 的 Log 處理方式
- 依據各種 Level 定義使用哪個 target 存放資料
- 可設定多組 rules
< targets>
< target
xsi:type="File"
name="f"
fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
< /targets>
Rules [設定] 紀錄規則
< rules>
< logger name="*" minlevel="Debug" writeTo="f" />
< /rules>
Using NLog
NLog.Logger logger = LogManager.GetCurrentClassLogger();
logger.Info("Info Lyndon");
logger.Error("Error Demo");
LoggingConfiguration config = new LoggingConfiguration();
FileTarget fileTarget = new FileTarget();
config.AddTarget("file", fileTarget);
fileTarget.FileName = "${basedir}/logs/${shortdate}Demo.log";
fileTarget.Layout = "${longdate} | ${callsite} | ${uppercase:${level}} | ${message}";
LoggingRule rule = new LoggingRule("*", LogLevel.Debug, fileTarget);
config.LoggingRules.Add(rule);
LogManager.Configuration = config;
Logger logger = LogManager.GetLogger("DemoExample");
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");
- 此方法會將原本的 config 資訊給取代掉,因此原本 config 資訊將不動作
Add Target and Rule
- 此方法可以延用原本的 config ,並加上新增加的 Target 與 Rule
- Code
FileTarget fileTarget = new FileTarget();
LogManager.Configuration.AddTarget("file", fileTarget);
fileTarget.FileName = "${basedir}/logs/${shortdate}Demo.log";
fileTarget.Layout = "${longdate} | ${callsite} | ${uppercase:${level}} | ${message}";
LoggingRule rule = new LoggingRule("NLogAPConfigILib", LogLevel.Debug, fileTarget);
LogManager.Configuration.LoggingRules.Add(rule);
LogManager.Configuration.Reload();
Logger logger = LogManager.GetLogger("NLogAPConfigILib");
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");
- 加入 Target 與 Rules,一定要呼叫 LogManager.Configuration.Reload()
variable [變數] 文字樣板
< variable name="myvar" value="myvalue"/>
< targets>
< target
xsi:type="File"
name="f"
fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
< /targets>
< rules>
< logger name="NLogLib" minlevel="Debug" writeTo="f" />
< /rules>
< variable name="DemoLayout" value="${longdate} ${uppercase:${level}} ${message}"/>
< targets>
< target
xsi:type="File"
name="f"
fileName="${basedir}/logs/${shortdate}.log"
layout="${DemoLayout}" />
< /targets>
< rules>
< logger name="NLogLib" minlevel="Debug" writeTo="f" />
< /rules>
- Ref:
- https://dotblogs.com.tw/wasichris/2015/02/27/150582
- https://stackoverflow.com/questions/7471490/add-enable-and-disable-nlog-loggers-programmatically
- http://blog.developer.idv.tw/2012/12/nlog-rules.html
- https://xianlee.gitbooks.io/csharp/content/nlog/index.html
- http://www.jianshu.com/p/0059a69da89e
- https://jeffprogrammer.wordpress.com/2015/12/13/asp-net-mvc-%E7%B0%A1%E6%98%93%E4%BD%BF%E7%94%A8-nlog-%E6%8D%95%E6%8D%89%E7%95%B0%E5%B8%B8%E7%8B%80%E6%B3%81/
- https://dotblogs.com.tw/jwpl102216/2017/03/26/090338
- http://ithelp.ithome.com.tw/articles/10138479
- http://blog.darkthread.net/post-2016-05-16-nlog-trouble-shooting.aspx
- https://xianlee.gitbooks.io/csharp/content/nlog/index.html
- http://ithelp.ithome.com.tw/articles/10138479
- https://dotblogs.com.tw/jwpl102216/2017/03/26/090338
- https://jeffprogrammer.wordpress.com/2015/12/13/asp-net-mvc-%E7%B0%A1%E6%98%93%E4%BD%BF%E7%94%A8-nlog-%E6%8D%95%E6%8D%89%E7%95%B0%E5%B8%B8%E7%8B%80%E6%B3%81/
沒有留言:
張貼留言