zoukankan      html  css  js  c++  java
  • .NET Core Log

    节选自这里

    日志记录编程主要会涉及到三个核心对象,它们分别是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对象列表,并委托它们将日志写入到相应的目的地。

  • 相关阅读:
    android studio解决微信登录,百度地图等调试问题
    Android studio初入的各种坑
    react native环境配置及各种坑
    单例模式序列化后反序列化单例失效的问题
    react native 初识react native
    Fragment 点击事件的穿透和重叠bug
    转载:android——eclipse如何去除Ctrl+shift+R组合键查找到的.class文件
    分布式队列Celery
    vue-生命周期
    vue-实现倒计时功能
  • 原文地址:https://www.cnblogs.com/shuangzimuchangzhu/p/8459915.html
Copyright © 2011-2022 走看看