在.net core web 项目中使用Nlog记录日志
第1步,添加NLog.Web.AspNetCore包引用
方法1
在项目上右击“依赖项”---“管理Nuget程序包(N)…”,然后在浏览对话框中输入“NLog.Web.AspNetCore”查找包,找到后选中并单击“安装”。


方法2
或者直接在包管理器控制台输入以下命令:
Install-Package NLog.Web.AspNetCore


第2步,添加Nlog.config配置文件
(1)在项目名称上击右键,选择 ”添加” --- “新建项”。

(2)在弹出的“添加新项”对话框中左边选择“ASP.NET Core”,右边选择“XML文件” ,“名称”框中输入“Nlog.config”,最后单击“添加”按钮。

(3)修改刚添加的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">
<targets>
<target xsi:type="File"
name="logfile"
fileName="${basedir}/logs/${shortdate}.log"
keepFileOpen="false"
layout="${longdate}|${callsite:fileName=True}
|${uppercase:${level}}|${message} ${exception}" />
<target xsi:type="File"
name="debugfile"
fileName="${basedir}/logs/${shortdate}_debug.log"
keepFileOpen="false"
layout="${longdate}|${callsite:fileName=True}
|${uppercase:${level}}|${message} ${exception}" />
<target xsi:type="File"
name="errfile"
fileName="${basedir}/logs/${shortdate}_error.log"
keepFileOpen="false"
layout="${longdate}|${callsite:fileName=True}
|${uppercase:${level}}|${message} ${exception}" />
</targets>
<rules>
<logger name="*" level="Debug" writeTo="debugfile" />
<logger name="*" level="Error" writeTo="errfile" />
<logger name="*" minlevel="Trace" writeTo="logfile" />
</rules>
</nlog>
(4)修改Nlog.config文件属性“复制到输出目录”为“始终复制”(这一步很重要,否则运行时会报找不到文件的异常).


第3步,在项目中打开Startup.cs文件,修改Configure方法
(1) 先给Configure方法增加IloggerFactory loggerFactory参数注入日志对象,此时增加的代码会报错,需在类文件头部添加引用代码:
using Microsoft.Extensions.Logging;

(2) 接着在Configure方法内部增加如下两行代码:
loggerFactory.AddNLog();//使用NLog作为日志记录工具
env.ConfigureNLog("Nlog.config"); //引入Nlog配置文件
注意:配置文件名为 ”Nlog.config” ,则env.ConfigureNLog("Nlog.config")这行代码可以不需要(Nlog默认找的就是Nlog.config文件)。如果是其他名字,则必须加上这一行代码。
添加以上代码后会报错,需在类文件头部添加如下引用代码:
using NLog.Extensions.Logging;
using NLog.Web;

第4步,在构造函数中注入日志对象(以Home控制器为例)。
ILogger<HomeController> logger;
public HomeController(ILogger<HomeController> _logger)
{
logger = _logger;
}
增加代码后程序会报错,需在类文件头部增加如下引用代码:
using Microsoft.Extensions.Logging;
代码如下图所示:

第5步:在控制器的Index方法中增加写日志的测试方法。
增加的代码如下:
public IActionResult Index()
{
logger.LogInformation("Index Begin...");
logger.LogTrace("Index Begin...");
logger.LogDebug("Index Begin...");
logger.LogError("Index Begin...");
return View();
}
如下图所示:

第6步:运行程序测试日志记录是否成功。
运行项目后,打开根目录下的:bin\Debug\netcoreapp2.2\logs
子目录,即可以看到生成的日志文件


在.net core web 项目中使用Nlog记录日志的更多相关文章
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
- Azure Storage 系列(二) .NET Core Web 项目中操作 Blob 存储
一,引言 上一篇文章,我们介绍到在实际项目中系统会产生大量的日志文件,用户上传的头像等等,同时也介绍到可以使用Azure Blob Storage 来存储项目中的一些日志文件,用户头像,用户视频等等. ...
- 在.net core web项目中生成图片验证码
第1步:添加SkiaSharp包引用 Install-Package SkiaSharp 第2步:编写生成图片验证码的代码 using SkiaSharp; //在类文件头部添加引用 public I ...
- ASP.NET MVC4 Web项目中使用Log4Net记录日志到文件和数据库。
下载与.netframework版本向对应的log4net.dll ,然后添加引用.下载地址:http://logging.apache.org/log4net/download_log4net.cg ...
- ASP.NET MVC Web项目中使用Log4Net记录日志,并按照日志类型分文件存储
1.创建MvcLog4Net项目 2.创建 空的MVC项目 3.项目创建完成的效果 4.选择项目,点击鼠标右键,在弹出菜单中选择“管理解决方案的 NuGet 程序包” 5. 在NuGet浏览界面: 点 ...
- 在.net core web 项目中操作MySql数据库(非ORM框架,原生sql语句方式)
本案例通过MySql.Data和Dapper包执行原生sql,实现对数据库的操作. 操作步骤: 第1步:在MySql数据库中新建表User(使用Navicat For MySql工具) 建表语句: c ...
- 在.net core web项目中生成二维码
1.添加QRCoder包引用 2. public IActionResult MakeQrCode() { string url="https://www.baidu.com& ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...
随机推荐
- session对象和cookie对象的区别
1.cookie数据存放在客户的浏览器上,session数据放在服务器上2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session3.ses ...
- SQL语句中的as
- SpringBoot的yml配置
Spring Boot的yml配置 #开发配置 spring: data: solr: host: http://localhost:6789/solr/mote mvc: view: # 页面默认前 ...
- 归并排序(从上到下、从下到上)——C语言
归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归 ...
- ASP.NET Core Web Api之JWT刷新Token(三)
前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋 ...
- 运行sh文件
记下在Ubuntu下安装*.sh和*.bin的简单方法. *.sh文件安装方法: 运行终端到文件目录下 1.在终端输入:sudo sh *.sh直接运行 2.在终端输入:sudo chmod +x * ...
- go 学习笔记之走进Goland编辑器
工欲善其事必先利其器,命令行工具虽然能够在一定程度上满足基本操作的需求,但实际工作中总不能一直使用命令行工具进行编码操作吧? 学习 Go 语言同样如此,为此需要寻找一个强大的 IDE 集成环境帮助我们 ...
- docker 容器之间互联
容器之间的互联 一. 实验目的: 1. 熟悉容器之间基本的网络原理: 2. 掌握容器之间互联的方法: 二. 实验环境: Ubuntu16.04+Docker 三. 实验内容: ...
- Spring boot实战项目整合阿里云RocketMQ (非开源版)消息队列实现发送普通消息,延时消息 --附代码
一.为什么选择RocketMQ消息队列? 首先RocketMQ是阿里巴巴自研出来的,也已开源.其性能和稳定性从双11就能看出来,借用阿里的一句官方介绍:历年双 11 购物狂欢节零点千万级 TPS.万亿 ...
- 100天搞定机器学习|day37 无公式理解反向传播算法之精髓
100天搞定机器学习(Day1-34) 100天搞定机器学习|Day35 深度学习之神经网络的结构 100天搞定机器学习|Day36 深度学习之梯度下降算法 本篇为100天搞定机器学习之第37天,亦 ...