在.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 ...
随机推荐
- 上传及下载github项目
1.上传本地项目 git init //把这个目录变成Git可以管理的仓库 git add README.md //文件添加到仓库 git add . //不但可以跟单 ...
- spark 源码分析之二十一 -- Task的执行流程
引言 在上两篇文章 spark 源码分析之十九 -- DAG的生成和Stage的划分 和 spark 源码分析之二十 -- Stage的提交 中剖析了Spark的DAG的生成,Stage的划分以及St ...
- 终极CRUD-2-用lombok提高开发效率
目录 1 lom介绍与基本使用 2 lombok 注意点 2.1 lombok自动生成方法可以混合自己写的方法 2.2 尽量不要使用@Data 2.3 属性不要使用基本类型 2.4 小心@ToStri ...
- Lombok 使用介绍(常见注解)
目录 @Data @NonNull @Getter & @Setter @ToString @EqualsAndHashCode @NoArgsConstructor, @RequiredAr ...
- Android 开发使用自定义字体
有时候,系统自带的字体并不能满足我们特殊的需求,这时候就需要引用其他的字体了,可以把下载的字体文件放在 assets 目录下. 自定义字体文件不能使用xml代码读取而应该使用java代码: publi ...
- 彻底理解kubernetes CNI
kubernetes各版本离线安装包 CNI接口很简单,特别一些新手一定要克服恐惧心里,和我一探究竟,本文结合原理与实践,认真读下来一定会对原理理解非常透彻. 环境介绍 我们安装kubernetes时 ...
- 激活函数、正向传播、反向传播及softmax分类器,一篇就够了!
1. 深度学习有哪些应用 图像:图像识别.物体识别.图片美化.图片修复.目标检测. 自然语言处理:机器创作.个性化推荐.文本分类.翻译.自动纠错.情感分析. 数值预测.量化交易 2. 什么是神经网络 ...
- Socket编程:UDP和TCP概论及案例
网络编程的三要素: 1.IP地址 2.端口 3.协议 什么是Socket? Socket就是通信链路的端点称"套接词". 基于TCP协议的Socket网络通信: 用来实现双向安全 ...
- Powered by .NET Core 进展0819:高速开车车况汇报
继续以流水账的方式向大家汇报,自从上周六上午将 .net core 版博客站点从 windows 部署切换到 linux 上的 docker-compose 部署后,到目前一直在线. Linux 上没 ...
- 使用charls抓包微信小程序的解决方案(终极解决,各种坑不怕,亲测可用,不服来战!)
第一步:使用charles进行https抓包 https://www.jianshu.com/p/7a88617ce80b 使用charles进行https抓包 使用Charles进行HTTPS抓 ...