杨中科 ASP.NET 日志系统

什么是LOGGING

传统意义上的黑匣子,记录操作

什么是日志

在这里插入图片描述

基本概念

1、日志级别:Trace<Debug<Information<Warning < Error < Critical
2、日志提供者(LoggingProvider):把日志输出到哪里。控制台、文件、数据库等。3、.NET的日志非常灵活,对于业务代码只要注入日志对象记录日志即可,具体哪些日志输出到哪里、什么样的格式、是否输出等都有配置或者初始化代码决定。

输出到控制台

1、NuGet: Microsoft.Extensions.Logging、Microsoft.Extensions.Logging.Console.
2、DI注入:services.AddLogging(logBuilder=>{
logBuilder.AddConsole();//可多个Provider
});
3、需要记录日志的代码,注入Iogger< T> 即可,T一般就用当前类,这个类的名字会输出到日志,方便定位错误。然后调用LogInformation()、LogError等方法输出不同级别的日志,还支持输出异常对象。

示例:

导入日志框架基础包,无论忘哪里输出
在这里插入图片描述

控制台日志输出

在这里插入图片描述
DI 注入
在这里插入图片描述
在这里插入图片描述
代码测试
在这里插入图片描述
运行结果:
在这里插入图片描述
发现只有warn fail 级别日志

更改日志最低级别限制
在这里插入图片描述
运行结果:
在这里插入图片描述
发现所有的都成功输出

设置为Error 则只会输出Error级别日志
在这里插入图片描述
在这里插入图片描述

测试二:

在这里插入图片描述
运行结果:
在这里插入图片描述

其他日志提供者

1、Console只适合开发阶段,why?运行阶段需要输出到文件等。
2、采用和Configuration类似的扩展机制,不仅内置了Debug、事件查看器、文件、zure日志等提供者,还可以扩展。Provider可以共存
3、EventLog:WindowsOnly。在Windows下部署的程序、网站运行出错、不正常,先去EventLog看看。NuGet安装:
Microsoft,Extensions.Logging.EventLog。然后logBuilder.AddEventLog()

日志系统2 NLOG

文本日志

1、运维人员更喜欢文本日志,为啥?
在这里插入图片描述
控制台日志 很容易被刷掉,也不能被长久保存

1、为什么文本日志一般按照日期区分?
在这里插入图片描述
如果程序运行很久的话,产生得日志文件将会十分庞大,也方便更好的定位问题

2、如何避免文本日志把磁盘撑爆?限制日志总个数或者总大小。
记满了一定数量,删除之前的

3、如何避免一个日志文件太大的问题?ICBC故事。限制单个文件大小。

NLOG

1、.NET没有内置文本日志提供者。第三方有Log4Net、NLog、Serilog等。老牌的Log4Net另搞一套,不考虑。
2、NLog,NuGet安装:NLog.Extensions.Logging
(usingNLog.Extensions.Logging;)。项目根目录下建nlog.config,注意文件名的大小写(考虑linux)也可以是其他文件名,但是需要单独配置。约定大于配置。内容见备注。讲解一下配置文件。
3、增加logBuilder.AddNLog()

示例

在这里插入图片描述

创建nlog.config 文件,小写

在这里插入图片描述
将官网中的配置信息,拷如config 配置文件
在这里插入图片描述
自定义修改文件
在这里插入图片描述
去掉得话 默认保存在项目文件下
在这里插入图片描述
在这里插入图片描述
更改配置文件属性,为如果较新则复制
在这里插入图片描述

因为程序运行的时候,加载的是输出目录下的配置文件

DI 注入
在这里插入图片描述

运行结果
在这里插入图片描述
查看项目输出目录
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值