ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 24. Logging
常用的诊断中间件:
- UseDeveloperExceptionPage
- UseStatusCodePages:返回 400~600 的状态码
- UseExceptionHandler 自定义异常的处理器
- UseWelcomePage:欢迎页,网站还在开发时可以启用该中间件
- UseDatabaseErrorPage
UseWelcomePage
放在管道的最前面
网站启动之后
无论我输入任何的地址 都会到这个页面。因为他放在管道的最前面了
开发模式下显示异常的页面
这个中间件显示400到600之间的错误代码
先把上面两个注释掉,抛出异常看看会发生什么
在HomeController里面抛出个异常信息
需要把欢迎页的中间件也去掉
页面这里报了个错误 。我们继续运行 。
页面上显示的错误
然后我们再把这个中间件 启动一下。UseDeveloperExceptionPage
这样页面启动后,就可以看到异常的详细信息了。
这个页面只能在开发的时候用。
UseExceptionHandler
这是生成的时候用的
在HomeController里面自己写一个MyError的Action
改成自己创建的Action
创建MyError的view 页面
改成生产环境
报错会直接跳转到我们的异常页面
UseStatusCodePages
访问一个不存在的,使用了这个中间件就会返回一个状态码和文字
如果没有这个中间件呢?
这个页面是浏览器端返回的页面,服务器端我们就没有返回任何页面
最终这些都用上
UseDatabaseErrorPage
和EF的迁移有关
迁移之后有个页面,让你点击应用这个迁移。
LOG
EventSource和DiagnosticSource 是在core里面内置的,默认就会使用
我们主要是使用ILogger,这里也主要讲ILogger
内置的 Log Providers:
- Console
- Debug:VS Debug 窗口
- EventSource:可以做 Event Tracing
- EventLog:将 Log 写入 Windows 事件 Log
- TraceSource:仅支持完整的 .NET Framework
- Azure App Service:使用Azure的时候使用
Log 等级:
- Trace
- Debug
- Information
- Warning
- Error
- Critical
‘
F12进去看源码
core里面默认已经添加了这几种
如果想改变这些默认的配置
读取配置文件的配置
这里暂时先注释掉
早HomeController里面使用方法,构造函数注入进来
新建常量
上面定义的常量在这里当做第一个参数。第二个参数就是我们记入的日志信息
控制台看到输出的日志信息
EventID是1000 日志信息在下面
主要的三个:分类、eventID、日志信息
日志内传入参数
也可以这么去写
推荐使用这种写法
看起来两种写法是一样的。但是对于其他Provider来说。这个id参数可以单独提出来,如果写在里面的话就提不出来。
配置
默认的配置
Debug以上的级别,日志都会记录下来
具体的可以看文档:
第三方log
core后来用的比较多的是EImah,这里也就说下EImah
nuget进行安装
输出到控制台还需要添加这个媒介
还有比较流行的sql server
这个不引入
这个不引入
还有这种文件的形式,把File也引入
配置方法,视频中没有录制
MinimumLevel.Debug()最小记录级别是Debug
MinimumLevel.Override("Microsoft", LogEventLevel.Information)如果遇到Microsoft的命名空间,记录最小级别是InfoMation
.Enrich.FromLogContext()通过上下文可以记录一些其他信息
视频里弹幕还是说NLog用的比较多一点
添加了两个sinks一个是Console一个是输出文件File
写到文件里文件名叫log.txt。每天生成一个文件
这里可以改成每分钟生成一个文件
最后创建这个log:
.CreateLogger()
然后在这里使用这个Serilog
运行程序,控制台文字颜色已经发生变化
根目录有文件生成:
修改成生成到文件夹内:logs文件夹内
再次运行
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 24. Logging的更多相关文章
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器
在MVC的请求管道 并不是 asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置
视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下
ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件
注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库
前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps
VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介
新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由
视频地址: https://www.bilibili.com/video/av38392956/?p=5 这里面就包含了MVC相关的库 可以通过打开右侧的Nuget库进行查看 这里修改下 ,只需要静态 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View
Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...
随机推荐
- docker 配置 direct-lvm
当前需要设置的宿主机是环境是搭建在vbox虚拟机上的centos7系统.测试环境中出现过一次意外情况,当时为了测试docker日志文件限制,运行了一个docker容器,但是后面忘记停止了,几天后发现了 ...
- 【Gradle】配置中引用的jar包版本后面自动加冒号导致引入jar包失败的问题/gradle中引用jar包版本不一致的问题/gradle中引用jar失败的问题 解决方法
idea中 gradle中 引用jar包,版本后面默认加:的问题 gradle中引用jar包版本不一致的问题 gradle中引用jar失败的问题 如上题目所示,三个问题其实都是同一样的简单又恶心,因为 ...
- 单词number 和 numeral 的区别
原文: http://blog.sina.com.cn/s/blog_72cd06360100vn7t.html be of 的用法,相当于表征特征或属性的形容词. 简单地说,“of + 名词”等于“ ...
- react jsx 数组变量的写法
1.通过 map 方法 var students = ["张三然","李慧思","赵思然","孙力气","王萌 ...
- 网络请求--Retrofit2用法
欢迎Follow我的GitHub, 关注我的CSDN. Retrofit是Square开发的网络请求库, 简化了网络请求的使用, 这个库太知名了, 优点我就不多说了. 让我们看看怎样使用吧? 注意: ...
- Java单例的实现
1.声明实例变量(静态) 2.私有化构造函数 3.创建获取实例的方法 public class Singleton{ //创建实例变量 private static Singleton singlet ...
- 用python编写的简易端口扫描器
#coding = utf-8 ''' python 3.4 通过简单的TCP端口连接来判断指定IP是否开放了指定端口. ''' import socket import optparse impor ...
- VC++ 学习笔记(四):停止还是暂停这个系列
我已经很久没有更新这个话题了,原因是多方面的,比如比较忙,比如我参与的项目不使用C++.最近因为需要在C#的客户端中调用第三方的C++API,又想起了这个话题.在跟公司里的C++方面专家聊过之后,我有 ...
- 【献给CWNU的师弟】Web篇
2014年10月8日 献给CWNU的师弟
- delphi 中OutputDebugString 函数的妙用(使用DebugView或者Pascal Analyzer软件,在运行过程中就能监视和捕捉日志,而且通过网络就能监视)
原文地址 https://www.peganza.com/delphi-and-outputdebugstring.html 曾经想要实时监控您的Delphi应用程序,并能够查看日志消息吗?当然,您始 ...