精易论坛

标题: 【无锁日志】易语言第一份日志系统。 [打印本页]

作者: 镇坛道德标杆    时间: 2017-11-28 00:23
标题: 【无锁日志】易语言第一份日志系统。
本帖最后由 镇坛道德标杆 于 2017-11-28 11:44 编辑

长时间运行的程序(例如服务器程序),或者流程复杂的多线程程序,打日志几乎是必需的,然而易这个圈子我到目前为止没有见过任何一个正经的日志轮子。

关于无锁:无锁直接在未知的项目中大量使用的话,可能会比有锁的日志安全。

关于性能:开启自动轮替,比 CreateFile + WriteFile + 临界资源 直接写慢一点,但是要注意,后者没有自动轮替,而且后者的自动轮替实现起来相对复杂,而且轮替的过程中容易阻塞、死锁或者丢失日志,而打日志最重要的就是【千万不要丢失日志】。


什么是自动轮替:
英文名 LogRotate,例如日志文件隔了一天就要换一个文件,否则文件越来越大,而且也不好整理和管理。比如默认每隔一天轮替一次。
我在这个日志系统里还加入了按照文件大小轮替,比如默认 100MB 轮替一次,太大了分析起来很吃力,编辑器带不动(我的日志不会太多,所以我自己使用会按照 10MB 来轮替,但是如果你的日志很频繁,轮替大小设置太小就会影响性能了)。

关于代码
代码从某天想起到成型也没有多久(事实上今天才算写了个雏形),没有经历过正式的项目,经历了好几个版本所以也没有整理得很好看(相对的,可读性也还算可以了)。注释不多,对原理感兴趣的可以自行面向搜索引擎理解,不懂也可以交流。

吐槽
易的自定义数据类型真的慢啊。。。感谢 kyozy 指点,以后能不用自定义数据类型就不用了。

最后,这是个简陋的轮子,希望各位多多扩展和贡献代码,一个人的精力有限,所涉及的项目规模和场景也有限,所以...
我觉得这是个简陋但是很有意义的源码,希望各位与我一起完成它。

源码下载:




Snipaste_2017-11-27_23-27-46.png (201.07 KB, 下载次数: 49)

Snipaste_2017-11-27_23-27-46.png

作者: 酷宝贝    时间: 2017-11-28 00:36
好东西,必须支持

作者: DX小鑫    时间: 2017-11-28 00:59
呵呵,不错,纯支持了^-^
作者: searchjack    时间: 2017-11-28 01:07
悄悄问一下  大佬  易配色叫什么名字
作者: 王导演    时间: 2017-11-28 01:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: clocks    时间: 2017-11-28 01:23
我一直想找一个轮子可惜不懂原理自己不会扣代码  谢谢分享了 我拿走收藏了
作者: 名无所谓    时间: 2017-11-28 02:12
学习下.
作者: 最后一抹笑    时间: 2017-11-28 02:35
可以大文件使用吗      
作者: 落款hMZ    时间: 2017-11-28 02:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风间琉璃    时间: 2017-11-28 08:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 网络注册会员    时间: 2017-11-28 08:42
我来顶你了
作者: xslyhk    时间: 2017-11-28 08:52
谢谢分享哦
作者: 扣扣    时间: 2017-11-28 09:01
好东西,谢谢楼主!!!!!!!!!!!!!

作者: 情雅    时间: 2017-11-28 09:04
支持开源~!感谢分享
作者: huaidan2015    时间: 2017-11-28 09:05
我拿走收藏了
作者: jspengcf    时间: 2017-11-28 09:21
日志文件记录的信息要区分,有些重要的信息要加密记下
作者: 商务    时间: 2017-11-28 09:21
感谢分享,学习一下
作者: 15887059803    时间: 2017-11-28 09:24
感谢分享支持开源
作者: 镇坛道德标杆    时间: 2017-11-28 09:47
风间琉璃 发表于 2017-11-28 08:01
我tm还是第一次听说无锁比有锁安全的. 无锁在高并发的情况下你确定不会出问题?

爆粗做什么

线程安全的无锁设计很少见么?
或者说,我阅读的一些开源代码中,高并发中都会尽量想办法设计成无锁的。

另外这个源码中轮替文件以及写操作之类的的原子性是由操作系统保证的。我只接受源码因简陋而没有考虑场景的指正,但是拒绝承认它在高并发下的不安全。

作者: lcw    时间: 2017-11-28 09:48
zheegshisha kankan
作者: natianlianji09    时间: 2017-11-28 10:16
支持开源~!感谢分享
作者: happyweeks365    时间: 2017-11-28 10:19
多谢楼主提供这个.
作者: hrb011011    时间: 2017-11-28 11:01
支持,谢谢分享~~

作者: Onsxsen    时间: 2017-11-28 12:23
很有学习价值啊
作者: 闪电    时间: 2017-11-28 12:29
多谢楼主提供这个.
作者: veryhigh2014    时间: 2017-11-28 13:02
好东西 这个要支持下

作者: 希望在田野    时间: 2017-11-28 13:52
大力支持  非常好的源码 加油楼主!!!!!!!!!!

作者: Fate    时间: 2017-11-28 15:23

作者: duoqing    时间: 2017-11-28 15:39
99999999999

作者: 上等兵    时间: 2017-11-28 15:46
谢谢分享,这个可能用的到,收着先

作者: anner    时间: 2017-11-28 16:08
能不用自定义数据类型就不用
作者: 指尖流淌    时间: 2017-11-28 16:37
支持开源~!感谢分享
作者: 罗泠雨人    时间: 2017-11-28 16:42
过来看看,看看是不是真的饿~~~~~~~~~~

作者: oow222    时间: 2017-11-28 17:14
顶楼主啦..希望楼主多发精品好帖啦.....
作者: 人生,时间太短    时间: 2017-11-28 18:40
的慢啊。。。感谢 kyozy 指点
作者: 爽歪歪    时间: 2017-11-28 19:06
下载来看一下啊。

作者: qiuyingjia    时间: 2017-11-28 20:00
可以的,支持
作者: 简凡    时间: 2017-11-28 20:21
支持开源,谢谢
作者: 日勿日勿    时间: 2017-11-28 20:28
非常感谢!
作者: dej0    时间: 2017-11-28 20:29
支持开源,谢谢
作者: 塔利班的蛋糕    时间: 2017-11-28 21:50
个个的大神,看完源码再点评好吧。I/O 有锁
作者: 风间琉璃    时间: 2017-11-28 21:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiaoarchos    时间: 2017-11-28 22:24
不错,学习一下,先学习一下

作者: 铭聚科技    时间: 2017-11-29 00:58
嗯大神之作不错不错顶顶顶
作者: samshine987    时间: 2017-11-29 04:29
一个个的大神,看完源码再点评好吧。I/O 有锁?
作者: 花开一半    时间: 2017-11-29 09:48
谢谢分享啊
作者: jiangai    时间: 2017-11-29 10:07
不错的!!!!
作者: 唯美主义    时间: 2017-11-29 13:30
谢谢楼主分享
作者: iah211    时间: 2017-11-29 13:36
感谢发布原创作品,一定好好学习,天天向上
作者: 297391910    时间: 2017-11-29 17:05
嗯看看                              
作者: 小曹    时间: 2017-11-29 19:56
终于有人做这个了 么么哒!!!
作者: batcd    时间: 2017-11-29 19:59
先支持做个记录就好了
作者: 包子陈    时间: 2017-11-29 23:22
持一看,

作者: 忧郁之子    时间: 2017-11-30 08:56
先标记一下,需要再来下载
作者: kankand    时间: 2017-11-30 10:57
下载。。。。。。。。。。

作者: 77806422    时间: 2017-11-30 13:17
66666666666666666
作者: baih123    时间: 2017-11-30 14:04
谢谢分享啊
作者: 枫眼    时间: 2017-11-30 15:29
66666666666666666666666666666666
作者: wanzhenghe999    时间: 2017-11-30 16:06
收藏了,谢谢分享

作者: QDS123    时间: 2017-11-30 20:25
支持,这个一定要顶。
作者: mmmww3    时间: 2017-11-30 21:13


作者: 6435525    时间: 2017-12-1 00:40
77666666666666666666666666666666666666666666666666666666666

作者: LoveLQ    时间: 2017-12-1 10:52
易语言第一份日志系统
作者: 循环不计次    时间: 2017-12-1 11:01
打个Call      
作者: 登峰望岳    时间: 2017-12-1 13:46
        感谢发布原创作品,一定好好学习,天天向上
作者: 列明    时间: 2017-12-1 13:57
嗯,对我来说,接下来的一个功能实现有用,据你所说

作者: 乌云科技团队    时间: 2017-12-1 15:34
学习了。666666666666666666
作者: weifusheng    时间: 2017-12-1 19:05
支持看下哈

作者: 已注销456802    时间: 2017-12-2 00:06
学习才刚刚开始。

作者: ibootmake    时间: 2017-12-2 12:28
支持开源~!感谢分享
作者: 小懒宝    时间: 2017-12-2 12:50
............
作者: oin    时间: 2017-12-2 12:58
易语言第一份日志系统

作者: 安哥    时间: 2017-12-2 13:10
多线程能用吗

作者: 镇坛道德标杆    时间: 2017-12-2 13:20
安哥 发表于 2017-12-2 13:10
多线程能用吗

当然,无锁就是为多线程设计的
作者: feng5555    时间: 2017-12-2 15:58
看一下 无锁日志 顺序会乱吧,,
作者: 邻居大表哥    时间: 2017-12-2 18:13
看看大神作品
作者: 战兵    时间: 2017-12-2 18:53
很好的东西 来看看
作者: 啪啪啪么么哒    时间: 2017-12-2 19:44


作者: qq2278322    时间: 2017-12-2 22:08
我来支持下了~
作者: luonia    时间: 2017-12-3 09:59
支持开源~!感谢分享
作者: hhhql    时间: 2017-12-3 11:42
支持开源~!感谢分享
作者: xiaowei0120    时间: 2017-12-3 11:53
正经的东西得支持下撒

作者: 瘦瘦的小四    时间: 2017-12-3 20:24
下载了,感谢贡献
作者: applek    时间: 2017-12-3 22:30
不明觉厉
作者: q292021720    时间: 2017-12-3 23:16


作者: 浮生若甍    时间: 2017-12-4 07:54
必须支持      

作者: 爱吃猫的小鱼    时间: 2017-12-4 15:03
顶楼主啦..希望楼主多发精品好帖啦.....
作者: 285275928    时间: 2017-12-4 18:26
无锁竟然比有锁安全.....
作者: 镇坛道德标杆    时间: 2017-12-4 18:54
285275928 发表于 2017-12-4 18:26
无锁竟然比有锁安全.....

当然,作为一个轮子,LockFree 当然比有锁安全。

无锁不是没有锁的普通代码的意思,而是可以多线程使用不加锁。  

作者: cymx735243556    时间: 2017-12-4 21:42
回复看看。。
作者: 116154801    时间: 2017-12-4 23:59
kankan~~~~
作者: fuzball    时间: 2017-12-7 09:05
支持开源~!感谢分享
作者: o5yo5g    时间: 2018-2-10 23:48
  感谢分享
支持开源
感谢楼主
作者: 夜极星空    时间: 2018-2-26 13:34
学习了,感谢分享
作者: 尘埃    时间: 2018-2-27 02:07
希望你这个是没有问题的
作者: 尘埃    时间: 2018-2-27 02:09
我准备用在正式的软件上的
作者: 15887059803    时间: 2018-3-6 10:01
感谢分享支持开源
作者: 吴鸣哥哥    时间: 2018-5-7 21:21

感谢分享支持开源
作者: 风九幽    时间: 2018-6-11 19:29
下载来看看
作者: watermelon    时间: 2018-9-13 19:30
楼主好人,下载看看效果如何。。




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4