ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 24. Logging




经常使用的诊断中间件:sql

  • UseDeveloperExceptionPage
  • UseStatusCodePages:返回 400~600 的状态码
  • UseExceptionHandler 自定义异常的处理器
  • UseWelcomePage:欢迎页,网站还在开发时能够启用该中间件
  • UseDatabaseErrorPage

UseWelcomePage

放在管道的最前面

网站启动以后

不管我输入任何的地址 都会到这个页面。由于他放在管道的最前面了

开发模式下显示异常的页面

这个中间件显示400到600之间的错误代码

先把上面两个注释掉,抛出异常看看会发生什么

在HomeController里面抛出个异常信息

须要把欢迎页的中间件也去掉


页面这里报了个错误 。咱们继续运行 。

页面上显示的错误

而后咱们再把这个中间件 启动一下。UseDeveloperExceptionPage

这样页面启动后,就能够看到异常的详细信息了。

这个页面只能在开发的时候用。
浏览器

UseExceptionHandler

这是生成的时候用的

在HomeController里面本身写一个MyError的Action

改为本身建立的Action

建立MyError的view 页面

改为生产环境

报错会直接跳转到咱们的异常页面



 服务器

UseStatusCodePages


访问一个不存在的,使用了这个中间件就会返回一个状态码和文字

若是没有这个中间件呢?

这个页面是浏览器端返回的页面,服务器端咱们就没有返回任何页面

最终这些都用上
ide

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 等级:orm

  • Trace
  • Debug
  • Information
  • Warning
  • Error
  • Critical



F12进去看源码

core里面默认已经添加了这几种

若是想改变这些默认的配置


读取配置文件的配置

这里暂时先注释掉


早HomeController里面使用方法,构造函数注入进来



新建常量

上面定义的常量在这里当作第一个参数。第二个参数就是咱们记入的日志信息


控制台看到输出的日志信息
EventID是1000 日志信息在下面

主要的三个:分类、eventID、日志信息
日志内传入参数

也能够这么去写

推荐使用这种写法

看起来两种写法是同样的。可是对于其余Provider来讲。这个id参数能够单独提出来,若是写在里面的话就提不出来。
视频

配置

默认的配置

Debug以上的级别,日志都会记录下来

具体的能够看文档:
server

第三方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文件夹内

再次运行

相关文章
相关标签/搜索