.Net记录Log的方法之NLog

.Net Core记录Log的方法之NLog

前言
前段时间,我搭建的.Net Core系统经常重定向到登录页,但是我设置的Cookie明明是半个月到期,我知道是时候该用Log监控一下是什么原因了,这里我用到的是NLog。

引入依赖包
如图,依赖NLog和NLog.Web.AspNetCore两个包
在这里插入图片描述
引入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"
      autoReload="true"
      throwConfigExceptions="true"
      internalLogLevel="info"
      internalLogFile="C:\log\internal-nlog.txt">
	<targets>
		<target xsi:type="File" name="ownFile-web" fileName="${basedir}/Log/${shortdate}_${level}.config" />
	</targets>
	<rules>
		<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
	</rules>
</nlog>

这里Level是指日志级别,官网给出的如图
在这里插入图片描述
那么这句代码

<logger name="*" minlevel="Trace" writeTo="ownFile-web" />

的解读就是所有名字的Log,Level最低都打印到ownFile-web对应的节点

<target xsi:type="File" name="ownFile-web" fileName="${basedir}/Log/${shortdate}_${level}.config" />

此处fileName指向就是当前文件夹下/Log/日期/Error|Info|…|.config日志文件。其中logger name="*"可用来过滤打印什么名字开头的Log,比如

<!--Debug模式和Release模式打出来的包,LogName前缀不一样,Release是以Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider开头的-->
<logger name="Microsoft.*" minlevel="Trace"  final="true" />
<!--上方已经过滤了所有Microsoft.*的日志,所以此处的日志只会打印除Microsoft.*外的日志-->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />

开始我这么写,发布很多次Debug模式下能打印Log,Release不打印Log就是因为logger name="Microsoft.*"这句话过滤掉了,并且没有writeTo,能打印才怪,补充一点,最初是设置了layout属性的,如代码

<target xsi:type="File" name="ownFile-web" fileName="${basedir}/Log/${shortdate}_${level}.config"
				 layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

这里面${logger} 属性在release和debug模式打包后名字不一样,才会过滤掉,如不设置,默认挺好,Level在前,路径在后,就没这问题了。

测试代码

NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

public IActionResult Index()
{
	//logger.Trace("这是Trace日志");
	//logger.Debug("这是Debug日志");
	logger.Info("Add UserInfo info: "+ "Home Index Successful.");
	//logger.Warn("这是警告日志");
	//logger.Error("这是错误日志");
	//logger.Error("Add UserInfo err:" + "ex.Message");
	return View();
}

测试代码很简单,如上,看效果

2020-08-03 08:38:33.3054|INFO|Management.Client.Controllers.HomeController|Add UserInfo info: Home Index Successful.

仅供学习参考,如有侵权联系我删除

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值