作为一名服务器开发人员,需要实时得到服务器日志的异常信息进行排查。我们不可能天天盯着日志去做这项工作,必须由相应的运维脚本来完成。我尝试用 Python 制作了一个监控日志并发送错误信息到开发人员的邮箱的工具。
项目地址在 https://github.com/chuenlungwang/monitorlog ,欢迎 star 和提出 pull request
主要用于对项目产生的日志进行跟踪,并将日志发送给回调函数进行处理。本项目中是 errmailcb.py 处理,找到其中特定正则表达式的行搜集到一起并发送给运维同学。你可以按照你自己的处理逻辑来处理,只需要引入 tail.py 即可。
tail.py 中有一个 Tail
类处理跟踪日志文件,每次尝试读取一行的数据,如果不足一行将不把数据传递给回调函数。Tail 保证传递给回调函数的都是完整的行。Tail 内部有指针记录当前读取到了哪个位置,因此,在运行过程中不会重复读取,并且日志产生很慢的情况下会自行休眠,等待下一次读取。目前默认的休眠时间是 60s。
tail.py 还有一个 tails 函数,会对以当前时间进行格式化文件名的文件进行处理。如果文件不存在则会休眠 120s 再继续尝试。而且因为是对当前时间进行格式化,当日志更换日期时能够持续跟踪。
本项目一次只能单线程跟踪一个日志文件。需要多个文件则需要启动多个进程。
以上文章记录在我的个人网站上:Mr.LONGx 的笔记 http://mrlongx.com/index.php/2017/09/14/monitor-log-project/ 定位很简单,主要以自己看过的书或文章的笔记为主。因为本人是一名游戏服务端的程序员,所以相关的方面会比较多。但不局限于此,我对任何与编程、通信、物理、数学有关的话题都感兴趣。
欢迎大家关注,交流!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.