zoukankan      html  css  js  c++  java
  • 聊一聊我心中的分布式日志处理框架

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

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

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

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

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

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

    关系图:

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

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

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

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

    INoticeable:消息通知接口

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

    Code:错误码

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

    Exexception:异常对象

    IsDebug:是否属于Debug模式

    IsSendMessage:是否发送消息

    Message:用户自定义消息

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

  • 相关阅读:
    使用SignTool对软件安装包进行数字签名(二)--进行数字签名
    使用SignTool对软件安装包进行数字签名(一)--制作证书
    三角形相关算法--求解三角形顶点坐标
    子网掩码与子网个数、主机地址个数的关系
    pgsql中的lateral使用小结
    Git中rebase失败了如何进行恢复
    灰度发布
    go 中的WaitGroup
    pgsql中json格式数组查询结果变成了字符串
    Go中的unsafe
  • 原文地址:https://www.cnblogs.com/dazhuangtage/p/5866994.html
Copyright © 2011-2022 走看看