• 聊一聊我心中的分布式日志处理框架


    其实这边文章说是“分布式日志框架”有标题党的嫌疑。把大家骗过来其实是想让大家指导一些意见,交流一下经验。

    最近看了一本关于架构方面的书,其中书里面有一句话让我影响很深刻:在没有弄清楚需求前就去做架构的人失败永远多于成功。

    仔细想了想,其实蛮有道理的。

    就我个人而言,当我决定做一个框架的时候,我会认为我对需求是了解的,拿着需求就开始定义接口写代码,但是一般这个情况,我都会返工,为什么?因为写不下去了。。。。。

    这次的日志框架相对于之前而已,我增加了消息队列来进行日志的缓冲读写已经写完日志后发送消息通知。

    我的构想是用户调用Log.Write方法,只需要传入日志实体,在方法中会自动判断写到队列还是直接写到某个介质中去。

    关系图:

    上图中部分接口作用如下:

    LogManager:日志管理器,用户实例化一个LogManager后只需要调用Write就可以进行写日志了

    ILogProviderBulid:日志提供程序构造器,通过配置文件构造出指定的ILogProvider程序

    IQueueProviderBulid:队列提供程序构造器,同归配置文件构造出指定的IQueueProvider

    INoticeable:消息通知接口

    关于Log实体的部分属性说明:

    Code:错误码

    ErrorType:错误类型 对应的是一个枚举

    Exexception:异常对象

    IsDebug:是否属于Debug模式

    IsSendMessage:是否发送消息

    Message:用户自定义消息

    代码的话还没有写完,不出意外的话我会在中秋之前把代码上传到github上,这个框架肯定会有一些不足,希望大家能够一起讨论,相互交流。先睡了,

  • 相关阅读:
    HDU4289(KB11-I 最小割)
    Qt5.编译错误.error: C2338: The slot requires more arguments than the signal provides.
    Winsock.简单UDP
    Winsock.简单TCP
    vs2015.无法运行rc.exe
    ffmpeg.编译(20191129)
    VC.DNS解析(winsock)
    vs.Debug.vector迭代器报错(_ITERATOR_DEBUG_LEVEL)
    智能指针.Qt测试
    Qt598x64vs2017.跨线程传递std::string
  • 原文地址:https://www.cnblogs.com/dazhuangtage/p/5866994.html
Copyright © 2020-2023  润新知