C#快速配置NLog日志的教程詳解
首先我們需要在Nuget中安裝Nlog和Nlog-Schema。

添加配置文件: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="d:\nlog\nlog-internal.log">
<!-- optional, add some variables
https://github.com/nlog/NLog/wiki/Configuration-file#variables
-->
<!--<variable name="myvar" value="myvalue"/>-->
<variable name="logDir" value="${basedir}/nlog"/>
<variable name="logFileName" value="${date:format=yyyyMMdd}.txt"/>
<variable name="logArchiveFileName" value="${date:format=yyyyMMdd}_{#}.txt"/>
<variable name="logLayout" value="${date:format=yyyy-MM-dd HH\:mm\:ss.fff} [${level}] ${message}"/>
<!--
See https://github.com/nlog/nlog/wiki/Configuration-file
for information on customizing logging rules and outputs.
-->
<targets>
<!--
add your targets here
See https://github.com/nlog/NLog/wiki/Targets for possible targets.
See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
-->
<!--
Write events to a file with the date in the filename.
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
-->
<target xsi:type="File" name="info"
layout="${logLayout}"
fileName="${logDir}/info/${logFileName}"
archiveFileName="${logDir}/info/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
<target xsi:type="File" name="debug"
layout="${logLayout}"
fileName="${logDir}/debug/${logFileName}"
archiveFileName="${logDir}/debug/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
<target xsi:type="File" name="error"
layout="${logLayout}"
fileName="${logDir}/error/${logFileName}"
archiveFileName="${logDir}/error/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
<target xsi:type="File" name="warn"
layout="${logLayout}"
fileName="${logDir}/warn/${logFileName}"
archiveFileName="${logDir}/warn/${logArchiveFileName}"
archiveAboveSize="10485760"
archiveNumbering="Sequence"
maxArchiveFiles="100"
concurrentWrites="true"
keepFileOpen="true"
openFileCacheTimeout="30"
encoding="UTF-8" />
</targets>
<rules>
<!-- add your logging rules here -->
<!--
Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"
<logger name="*" minlevel="Debug" writeTo="f" />
-->
<logger name="*" minlevel="Info" maxlevel="Info" writeTo="info" />
<logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="debug" />
<logger name="*" minlevel="Error" maxlevel="Error" writeTo="error" />
<logger name="*" minlevel="Warn" maxlevel="Warn" writeTo="warn" />
</rules>
</nlog>
定義了5種log類型Debug,Info,Debug,Error,Warn,詳細(xì)配置可以自己定義。
定義一個(gè)常用的log類
public class NLogHelper
{
private static Logger _log = NLog.LogManager.GetCurrentClassLogger();
/// <summary>
/// Debug日志
/// </summary>
/// <param name="log"></param>
public static void Debug(string log)
{
_log.Debug(log);
}
/// <summary>
/// Error日志
/// </summary>
/// <param name="log"></param>
public static void Error(string log)
{
_log.Error(log);
}
/// <summary>
/// Warn日志
/// </summary>
/// <param name="log"></param>
public static void Warn(string log)
{
_log.Warn(log);
}
/// <summary>
/// Info日志
/// </summary>
/// <param name="log"></param>
public static void Info(string log)
{
_log.Info(log);
}
/// <summary>
/// 詳細(xì)異常日志
/// </summary>
/// <param name="ex"></param>
public static void Exception_Error(Exception ex)
{
try
{
if (ex != null)
{
StringBuilder strBuilder = new StringBuilder();
strBuilder.Append("【異常日志消息】");
strBuilder.AppendLine(ex.Message);
strBuilder.Append("【異常日志Trace】");
strBuilder.AppendLine(ex.StackTrace);
strBuilder.Append("【異常日志全部】");
strBuilder.Append(ex.ToString());
_log.Error(strBuilder.ToString());
}
}
catch (Exception)
{
}
}
}
調(diào)用代碼
NLogHelper.Info($"系統(tǒng)正在運(yùn)行中...");
到此這篇關(guān)于C#快速配置NLog日志的教程詳解的文章就介紹到這了,更多相關(guān)C#配置NLog日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用selenium實(shí)現(xiàn)爬蟲(chóng)
這篇文章介紹了C#使用selenium實(shí)現(xiàn)爬蟲(chóng)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C#實(shí)現(xiàn)簡(jiǎn)易猜數(shù)字游戲
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)易猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
C#自定義事件監(jiān)聽(tīng)實(shí)現(xiàn)方法
這篇文章主要介紹了C#自定義事件監(jiān)聽(tīng)實(shí)現(xiàn)方法,涉及C#事件監(jiān)聽(tīng)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
c#之圓形無(wú)標(biāo)題欄橢圓窗體的實(shí)現(xiàn)詳解
本篇文章是對(duì)c#中圓形無(wú)標(biāo)題欄橢圓窗體的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

