首页 > Web开发 > 详细

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

时间:2019-05-29 23:15:41      阅读:101      评论:0      收藏:0      [点我收藏+]


技术分享图片

技术分享图片

常用的诊断中间件:

  • 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

原文:https://www.cnblogs.com/wangjunwei/p/10946611.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!