如何实现一个轻量级的日志组件

使用场景分析

日志组件是一种比较成熟的组件了,但是实际上会有很多场景想自己实现日志:

  1. 在底层组件中,不想要其他依赖,主要考虑的是日志组件版本冲突问题
  2. 非常简单的小项目,专业的日志组件过于复杂
  3. 有很多测试场景,不想用大的日志框架
  4. 其他变态场景

功能简单设计

笔者也是在实际生产中遇到了类似场景。

故简单设计了轻量级日志组件所需要具备功能:

  1. 日志组件需要非常简单,可以独立使用,也可以集成到项目中使用
  2. 日志组件需要有非常高的写入性能,但是不能占用太多内存和io
  3. 日志组件最好能实现自管理,不需要考虑历史数据清理等
  4. 日志需要接口化,方便切换不同的日志实现
  5. 单个日志文件可以设置大小
  6. 日志组件支持动态开关
  7. 日志组件支持自动降级,当异常出现时不影响主程序
  8. 日志支持归档功能,当日志文件过多时,自动压缩归档,当然归档需要设置大小限制

简单实现

根据以上功能要求,我简单实现了简易的C#版本日志组件:

TinyLog

有需要的同学可以直接使用,如果是其他语言,可以自行参考实现,源码非常简单!

当然懒人读者真需要其他语言版本,可以issue我

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值