net核心中如何使用日志记录日志组件

新建。网络核心Web Api项目,添加下面代码。

。网络核心中如何使用日志记录日志组件

运行结果如下:

。网络核心中如何使用日志记录日志组件

我刚开始接触的时候,我就有一个疑问我根本没有配置关于记录器的任何代码,仅仅写了注入,为什么会起作用呢?最后我发现其实是在程序类中使用了微软默认的配置。

。网络核心中如何使用日志记录日志组件

下面为CreateDefaultBuilder方法的部分源码,整个源码在,https://github.com/aspnet/MetaPackages,可以看出在使用模板创建项目的时候,默认添加了控制台和调试日志组件,并从appsettings.json中读取配置。

。网络核心中如何使用日志记录日志组件

, 3,建立自己的日志配置

首先修改程序类

。网络核心中如何使用日志记录日志组件

修改启动类如下面,此类的执行顺序为,启动构造函数比;ConfigureServices祝辞配置

。网络核心中如何使用日志记录日志组件

这种结构就比较清晰明了。

4,日志源码解析

<>前三种配置其实都是为了注入日志相关的服务,但是调用的方法稍有不同。现在我们以第二种配置来详细看看其注入过程。首先调用AddLogging方法,其实现源码如下:

。网络核心中如何使用日志记录日志组件

接着会调用AddConfiguration

。网络核心中如何使用日志记录日志组件

下面来看打印日志的具体实现:,

。网络核心中如何使用日志记录日志组件

下面具体看一下控制台的打印实现:

首先ConsoleLogger实现了ILogger实例的日志方法,并在方法中调用WriteMessage方法

。网络核心中如何使用日志记录日志组件

<>之前,下面看日志被放入队列后的具体实现:

。网络核心中如何使用日志记录日志组件

net核心中如何使用日志记录日志组件