.NET 黑魔法 - asp.net core 日志系统
asp.net core 里如何记录日志呢?
这要从asp.net core的依赖注入说起,在asp.net core里的依赖注入真是无所不在,各种面向切面的接口与事件。
好吧,来点干货。
首先,我们希望有这样一种调用方式(或者说asp.net core集成的日志功能只能用这种方式):

在asp.net core里,框架内的很多功能都是依赖注入,不需要new XXX(),只需要在对象的构造函数里注入就好啦。 上图的ILogger<LogController> logger,就是asp.net core日志功能的接口。
this.logger.LogInformation("这里是日志信息的消息"); 就是记录一个信息日志,通常跟业务相关。 this.logger.LogError(e, e.StackTrace, new string[] { "附加参数1", "附加参数2" });就是记录一个异常日志。
当然,还有其他级别的方法,比如.LogDebug(),.LogWarning() 等等。
到此,如何使用日志功能已经讲完了,下来我们看看怎么配置它。

注意途中Startup方法和Configure方法,这里我们用了NLog,那么NLog是什么呢?
其实他是asp.net core ILogger接口的实现,我要通过接口注入,又没有实例化的代码,所以实例化的工作只能交由别人来做了,各位有兴趣可以实现一套自己的日志系统。
最后,别忘了把名为nlog.config的配置文件放在项目根目录,它决定了我们日志系统的行为,比如模板等等:

关于NLog更多的介绍我们以后再讲,会介绍它的日志级别,日志模板等。
.NET 黑魔法 - asp.net core 日志系统的更多相关文章
- 理解ASP.NET Core - 日志(Logging)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 快速上手 添加日志提供程序 在文章主机(Host)中,讲到Host.CreateDefault ...
- asp.net core 日志
日志输出是应用程序必不可少的部分,log4net,nlog这些成熟的组件在之前的项目中被广泛使用,在asp.net core的项目中没有找到与之对应的log4net版本,nlog对core提供了很好的 ...
- ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...
- 自定义ASP.NET Core日志中间件
这个日志框架使用的是ASP.NET Core的NLog,用来记录每次请求信息和返回信息. 1.首先创建一个Web应用项目,我选择的是MVC模板: 2.使用NuGet添加Microsoft.Extens ...
- 总结:利用asp.net core日志进行生产环境下的错误排查(asp.net core version 2.2,用IIS做服务器)
概述 调试asp.net core程序时,在输出窗口中,在输出来源选择“调试”或“xxx-ASP.NET Core Web服务器”时,可以看到类似“info:Microsoft.AspNetCore. ...
- asp.net core后台系统登录的快速构建
登录流程图 示例预览 构建步骤 当然,你也可以直接之前前往coding仓库查看源码,要是发现bug记得提醒我啊~ LoginDemo地址 1. 首先你得有一个项目 2. 然后你需要一个登录页面 完整L ...
- asp.net core 日志记录到elk
关于ELK的安装大家可以参考ubuntu18 docker中部署ELK 和 caas/docker-elk , 首先需要在ELK中创建一个index patterns 首先我们创建一个aspnet ...
- .NET 黑魔法 - asp.net core 身份认证 - Policy
身份认证几乎是每个项目都要集成的功能,在面向接口(Microservice)的系统中,我们需要有跨平台,多终端支持等特性的认证机制,基于token的认证方式无疑是最好的方案.今天我们就来介绍下在.Ne ...
- asp.net core日志组件
日志介绍 Logging的使用 1. appsettings.json中Logging的介绍 Logging的配置信息是保存在appsettings.json配置文件中的.因为之前介绍配置文件的时候我 ...
随机推荐
- CS231n: Convolutional Neural Networks for Visual Recognition
https://zhuanlan.zhihu.com/p/28522637 https://zhuanlan.zhihu.com/p/21930884 mark
- Fiddler怎么可以抓取https的请求包
对于https的协议是带有安全的功能,所有有一些的https的协议是无法抓到的,所以需要通过设置filler中来对,来使用filler的方式的来抓取到https的请求包,那么如何使用filler中抓取 ...
- SQL join的介绍
学员表 SELECT * FROM tb_address; SELECT * FROM tb_student 1.JOIN关联两个表数据,将匹配数据展示,数据无匹配值则不展示 注释:INNER JOI ...
- ES6新特性三: Generator(生成器)函数详解
本文实例讲述了ES6新特性三: Generator(生成器)函数.分享给大家供大家参考,具体如下: 1. 简介 ① 理解:可以把它理解成一个函数的内部状态的遍历器,每调用一次,函数的内部状态发生一次改 ...
- 遍历出文档内所有元素的tagName
//深度优先 function deepLogTagNames(parentNode){ console.log(parentNode.tagName); const childNodes=paren ...
- mysql数据库的备份和还原
mysql数据库的备份命令:mysqldump -u root -p 要备份的现有数据库名 > 备份后的sql文件名.sql,例如: mysqldump -u root -p heal ...
- 牛客网Wannafly挑战赛25A 因子 数论
正解:小学数学数论 解题报告: 传送门 大概会连着写几道相对而言比较简单的数学题,,,之后就会比较难了QAQ 所以这题相对而言还是比较水的,,, 首先这种题目不难想到分解质因数趴,, 于是就先对p和n ...
- 【Python基础】*args,**args的详细用法
Python基础知识:*args,**args的详细用法 参考:https://blog.csdn.net/qq_29287973/article/details/78040291 *args 不定 ...
- 一步步搭建 Spring Boot maven 框架的工程
摘要:让Spring应用从配置到运行更加快速,演示DIY Spring Boot 框架时,如何配置端口号,如何添加日志. Spring Boot 框架帮助开发者更容易地创建基于Spring的应用程序和 ...
- Eclipse设置注释模板和工作空间背景色为豆沙绿
Eclipse Version: Photon Release (4.8.0). 首先上图,根据图上的步骤即可完成注释模板的设置. 1 如何设置eclipse注释模板的日期格式 在eclipse的 P ...