开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 25203|回复: 125
收起左侧

[2017开源大赛(第二届)] 【无锁日志】易语言第一份日志系统。

[复制链接]
结帖率:100% (26/26)
发表于 2017-11-28 00:23:48 | 显示全部楼层 |阅读模式   重庆市重庆市
本帖最后由 镇坛道德标杆 于 2017-11-28 11:44 编辑

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

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

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


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

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

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

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

源码下载:

测试看  _临时子程序()  下面的  测试_无锁日志()

下载.txt (111 Bytes, 下载次数: 567)
Snipaste_2017-11-27_23-27-46.png

点评

一个个的大神,看完源码再点评好吧。I/O 有锁?   重庆市重庆市  发表于 2017-11-28 10:52
大哥,,这个不是原子锁吗? 怎么就没用锁了...   广东省广州市  发表于 2017-11-28 10:30
第一次听说那就学着呗,不客气   重庆市重庆市  发表于 2017-11-28 09:38
我tm还是第一次听说无锁比有锁安全的.   广东省中山市  发表于 2017-11-28 07:55

评分

参与人数 6好评 +5 精币 +31 收起 理由
0010101 + 1 + 3 环境win10 E5 64G内存 报错 访问无效内存 异常捕获位置 写日志 InterlockedExchang.
日勿日勿 + 1 + 2 感谢发布原创作品,一定好好学习,天天向上
上等兵 + 1 支持开源~!感谢分享
natianlianji09 + 1 + 1 支持开源~!感谢分享
大飛 + 1 + 20 奉上小小红包希望笑纳
酷宝贝 + 1 + 4 支持开源~!感谢分享

查看全部评分

本帖被以下淘专辑推荐:

结帖率:29% (6/21)

签到天数: 14 天

发表于 2023-10-9 13:20:46 | 显示全部楼层   湖南省邵阳市
一个个的大神
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 1 天

发表于 2023-8-4 04:23:52 | 显示全部楼层   四川省南充市
                     
回复 支持 反对

使用道具 举报

发表于 2022-12-23 17:23:23 | 显示全部楼层   陕西省西安市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:90% (27/30)

签到天数: 19 天

发表于 2022-7-23 22:30:53 | 显示全部楼层   山东省济南市
多谢分享
回复 支持 反对

使用道具 举报

发表于 2022-7-14 15:33:41 | 显示全部楼层   江西省九江市
eeeeeeeeeee++++++++++
回复 支持 反对

使用道具 举报

发表于 2022-7-6 17:08:13 | 显示全部楼层   江西省九江市
链接失效了.群主
回复 支持 反对

使用道具 举报

发表于 2022-4-21 08:12:35 | 显示全部楼层   广东省东莞市
谢谢分享!!
回复 支持 反对

使用道具 举报

发表于 2021-10-15 22:25:55 | 显示全部楼层   河南省新乡市
dddddddddddddddddd
回复 支持 反对

使用道具 举报

发表于 2021-7-22 02:51:22 | 显示全部楼层   广东省广州市
非常感谢!
回复 支持 反对

使用道具 举报

结帖率:85% (17/20)
发表于 2021-1-21 12:14:02 | 显示全部楼层   江西省吉安市
感谢分享~~~~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表