码迷,mamicode.com
首页 > Web开发 > 详细

.NET Core Log

时间:2018-02-22 21:42:14      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:img   core   div   www   logs   hive   pos   gpo   idt   

节选自这里

日志记录编程主要会涉及到三个核心对象,它们分别是LoggerLoggerFactoryLoggerProvider,这三个对象同时也是.NET Core日志模型中的核心对象,并通过相应的接口(ILogger、ILoggerFactory和ILoggerProvider)技术分享图片来体现。右图所示的UML揭示了日志模型的这三个核心对象之间的关系。

在进行日志记录编程时,我们直接调用Logger对象相应的方法写入日志,LoggerFactory是创建Logger对象的工厂。由LoggerFactory创建的Logger并不真正实现对日志的写入操作,真正将日志写入相应目的地的Logger是通过相应的LoggerProvider提供的,前者是对后者的封装,它将日志记录请求委托给后者来完成。

具体来说,在通过LoggerFactory创建Logger之前,我们会根据需求将一个或者多个LoggerProvider注册到LoggerFactory之上。比如,如果我们需要将日志记录到EventLog中,我们会注册一个EventLogLoggerProvider,后者会提供一个EventLogLogger对象来实现针对EventLog的日志记录。当我们利用LoggerFactory创建Logger对象时,它会利用注册其上的所有LoggerProvider创建一组具有真正日志写入功能的Logger对象,并采用“组合(Composition)”模式利用这个Logger列表创建并返回一个Logger对象。

综上所述,LoggerFactory创建的Logger仅仅是一个“壳”,在它内部封装了一个或者多个具有真正日志写入功能的Logger对象。当我们调用前者实施日志记录操作时,它会遍历被封装的Logger对象列表,并委托它们将日志写入到相应的目的地。

.NET Core Log

标签:img   core   div   www   logs   hive   pos   gpo   idt   

原文地址:https://www.cnblogs.com/shuangzimuchangzhu/p/8459915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!