聊一聊我心中的分布式日志处理框架
其实这边文章说是“分布式日志框架”有标题党的嫌疑。把大家骗过来其实是想让大家指导一些意见,交流一下经验。
最近看了一本关于架构方面的书,其中书里面有一句话让我影响很深刻:在没有弄清楚需求前就去做架构的人失败永远多于成功。
仔细想了想,其实蛮有道理的。
就我个人而言,当我决定做一个框架的时候,我会认为我对需求是了解的,拿着需求就开始定义接口写代码,但是一般这个情况,我都会返工,为什么?因为写不下去了。。。。。
这次的日志框架相对于之前而已,我增加了消息队列来进行日志的缓冲读写已经写完日志后发送消息通知。
我的构想是用户调用Log.Write方法,只需要传入日志实体,在方法中会自动判断写到队列还是直接写到某个介质中去。
关系图:
上图中部分接口作用如下:
LogManager:日志管理器,用户实例化一个LogManager后只需要调用Write就可以进行写日志了
ILogProviderBulid:日志提供程序构造器,通过配置文件构造出指定的ILogProvider程序
IQueueProviderBulid:队列提供程序构造器,同归配置文件构造出指定的IQueueProvider
INoticeable:消息通知接口
关于Log实体的部分属性说明:
Code:错误码
ErrorType:错误类型 对应的是一个枚举
Exexception:异常对象
IsDebug:是否属于Debug模式
IsSendMessage:是否发送消息
Message:用户自定义消息
代码的话还没有写完,不出意外的话我会在中秋之前把代码上传到github上,这个框架肯定会有一些不足,希望大家能够一起讨论,相互交流。先睡了,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?