版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SevenGirl2017/article/details/86664315
定义
NLog是一个简单灵活的.NET日志记录类库,它可以使用任何一种.NET语言进行诊断信息的输出。
使用
安装
打开NuGet管理包
搜索NLog,进行NLog、NLog.Config的下载
项目中添加NLog.config和NLog.xsd。显示效果如下
配置
以U层为例,双击U层下的NLog.config进行配置
<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">
<!--定义变量 projectName 项目名称 logDirctory 文件路径-->
<variable name="projectName" value="NCRE"/>
<variable name="logDirectory" value="D:/项目-一级/Demo/NLog/${projectName}/${shortdate}"/>
<targets>
<target xsi:type="File" name="logfiles" fileName="${logDirectory}/${shortdate}.log"
layout="${longdate} ${level} ${message} ${stacktrace} ${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}${newline}"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfiles" />
</rules>
</nlog>
调用
添加调用不影响主程序的运行,只要在需要的位置进行对应的Logger调用即可。
using NLog;
static class Program
{
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main()
{
// logger.Log(LogLevel.Trace, message);//形式
// logger.Trace(message);
logger.Log(LogLevel.Trace, "nlog test Trace");//举例
logger.Trace("TTTTTTTTTT");
}
}
显示效果
标签说明
nlog
- autoReload 修改配置文件后是否允许自动加载无须重启程序
- throwExceptions 内部日志系统抛出异常
- internalLogLevel 可选Trace|Debug|Info|Warn|Error|Fatal决定内部日志的级别 Off表示关闭
- internalLogFile 把内部的调试和异常信息都写入指定文件里
targets 定义输出模板
- name:输出名称
- type:输出类型
- Console 输出到控制台
- Debugger 输出到
- File 输出到文件
- Mail 输出为邮件发送
- Network 输出到网络地址
- Database 输出到数据库
- fileName=" {shortdate}.log":表示输出到指定路径下的以短日期命名的log中
- layout="…":输出文件中错误的显示格式
- ${logDirectory}:为上述定义的路径
- ${longdate}:输出长日期 yyyy-MM-dd HH:mm:ss.ffff(例:2013-01-31 14:49:21.2120)
- ${shortdate}:输出短日期
- ${level}:错误等级(由低到高为Trace,Debug,Info,Warn,Error,Fatal)
- ${newline}:输出 新的一行
- ${stacktrace}:输出 堆栈信息
- ${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}:输出 命名空间.类名.方法名(文件路径:行号)
- ${message}:输出的具体信息
rules
- name - 记录者的名字 (允许使用通配符*,代表记录所有信息)
- minlevel - 匹配日志范围的最低级别
- minlevel=“Trace”:记录的最低错误级别为Trace
- maxlevel - 匹配日志范围的最高级别
- Trace - 非常详细的日志,包含最详尽的信息,例如协议的有效载荷. 该日志等级通常仅在开发过程中被使用;
- Debug - 调试信息,详尽信息次于 Trace ,在生产环境中通常不启用;
- Info - 信息消息, 通常在生产环境中通常启用;
- Warn - 警告信息,通常用于非关键问题,这些问题可以恢复,或者是暂时的故障;
- Error - 错误信息 - 多数情况下记录Exceptions(异常)信息;
- Fatal - 非常严重的错误!
- level - 匹配的单一日志级别
- levels - 匹配的一系列日志级别,由逗号分隔。
- writeTo - 规则匹配时日志应该被写入的一系列目标,由逗号分隔。
- writeTo=“logfiles”:日志写入logfiles的target中