架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4669|回复: 0

[.NET Core] ASP.NET Core ILogger日志使用教程

[复制链接]
发表于 2019-5-8 14:43:01 | 显示全部楼层
ASP.NET Core 支持适用于各种内置和第三方日志记录提供程序的日志记录 API。记录日志是我们日常开发中必不可少的功能。

先看一下控制台的效果图,如下:

QQ截图20190508133913.jpg

添加日志提供程序

日志记录提供程序会显示或存储日志。 例如,控制台提供程序在控制台上显示日志,Azure Application Insights 提供程序会将这些日志存储在 Azure Application Insights 中。 可通过添加多个提供程序将日志发送到多个目标。

编辑Program文件如下:

创建日志(构造函数方式注入)


以下控制器示例会创建所有级别的日志。
日志等级
显示文字
前景颜色
背景颜色
Trace
trce
Gray
Black
Debug
dbug
Gray
Black
Information
info
DarkGreen
Black
Warning
warn
Yellow
Black
Error
fail
Red
Black
Critical
crit
White
Red

参考链接:https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.extensions.logging.loglevel?view=aspnetcore-2.2

通过如下命令运行项目,即可通过控制台看到输出的日志了。

访问本地网址,即可看到输出结果。

控制日志级别

我们并不想看到控制台输出那么多无意义的info日志,只想看到自己记录的重要日志,怎么办呢?

1:通过配置文件控制日志级别,编辑appsettings.json文件,如下:

此 JSON 将创建 6 条筛选规则:1 条用于调试提供程序, 4 条用于控制台提供程序, 1 条用于所有提供程序。 创建 ILogger 对象时,为每个提供程序选择一个规则。

2:通过代码控制(没有测试)

第二个 AddFilter 使用类型名称来指定调试提供程序。 第一个 AddFilter 应用于全部提供程序,因为它未指定提供程序类型。

默认最低级别

仅当配置或代码中的规则对给定提供程序和类别都不适用时,最低级别设置才会生效。 下面的示例演示如何设置最低级别:


如果没有明确设置最低级别,则默认值为 Information,它表示 Trace 和 Debug 日志将被忽略

参考链接:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/logging/?view=aspnetcore-2.2

使用Autofac通过属性注入ILogger日志

一般我们都是通过构造函数注入日志服务,如何通过属性注入呢?还有如何把ILogger托管给Autofac呢?

在Startup编辑方法ConfigureServices,如下:


重要的以下四句话:

一定要加loggerFactory.AddConsole();这行代码,否则控制台将不会输出任何内容,并且给autofac托管,配置文件将失效。

控制器代码:

访问网址,dotnet run启动项目,控制台输出如下:

QQ截图20190508140218.jpg

如何把日志ILogger通过属性注入到别的类里面。

(完)




上一篇:ASP.NET Core使用Autofac两种方式实现IOC注入
下一篇:ASP.NET Core使用Autofac实现AOP拦截
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-7-12 15:57

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表