donnie4w / go-logger

go高性能日志库, 支持日志格式化, 文件切割,压缩等特性
https://tlnet.top/logdoc
BSD 3-Clause "New" or "Revised" License
279 stars 103 forks source link

把锁改为写锁;把\拼接改成join #35

Closed Bronya0 closed 2 months ago

Bronya0 commented 2 months ago

优化注释 把锁改为写锁; 把\拼接改成join 增加了备份异常时的打印

donnie4w commented 2 months ago

@Bronya0 可以把\拼接改成join ,增强兼容性 不过锁是不需要改的 这里的锁解决的是备份文件操作与写文件的并发问题 写文件本身内部已经加锁,文件长度也使用原子计算,这里不需要写锁。

Bronya0 commented 2 months ago

@donnie4w 好的我改下

donnie4w commented 2 months ago

@Bronya0 备份发生异常时,备份方法内部已经打印了异常信息,不需要再次打印了

Bronya0 commented 2 months ago

@donnie4w 默认只是输出到stdout吧,我改成写到文件了,是不是更符合现实场景

donnie4w commented 2 months ago

@Bronya0

@donnie4w 默认只是输出到stdout吧,我改成写到文件了,是不是更符合现实场景

  1. 是的,默认输出控制台。这可能是比较合理的做法。把日志工具本身的异常信息输出到开发者记录业务信息的日志文件, 这超出了日志内容可预测的范围了。如果是记录系统运行日志,可能没什么。但如果是一些业务日志,并可以用于统计,可能因为内容格式问题影响到基于这些日志文件的统计脚本或数据分析工具的正确运行。所以,我个人认为这么改是有一些风险的。
  2. 控制台数据通常是可以捕获的,因此输出控制台并不会有太大问题。
  3. 另外,你将异常信息输出到文件,可能不会是你预期的效果,如果backup失败,可能文件已经被关闭但却没有新创建文件,你的异常信息是无法写入文件的。
  4. 实际上,backup函数在多个地方调用了,但你只改了一个地方。后续如果需要优化,可以多个调用的地方都修改。如果出现重复修改的情况,建议直接在backup函数中修改。
Bronya0 commented 2 months ago

@donnie4w 你说的对,我去掉这块变更了