Python 处理 log 入库

2017-08-10 20:01:30 +08:00
 polandeme

现在有多个日志文件,单个文件不是太大(<50 ) M,每条日志都打有时间戳,想着想取出某条记录格式是: [timestamp]xxxxxxaaabbbcc:{json 格式数据}, 要取得点是时间戳和 json 格式中的数据。

现在的做法是想比较粗暴的按行遍历文件,找到这一行,按照关键词提取信息,然后入库。

对 python 不熟悉,没有太多这方面的经验。

想问一下有没有更好的方案或者合适的库?

2109 次点击
所在节点    问与答
7 条回复
shiroming
2017-08-10 20:25:56 +08:00
正则匹配呗
polandeme
2017-08-10 20:26:19 +08:00
@shiroming 一行一行读,然后正则匹配?
shiroming
2017-08-10 20:51:57 +08:00
😏50m 一次读才简单粗暴
ipwx
2017-08-10 20:56:16 +08:00
才 50MB。。

读进来,然后 re.findall 或者 re.finditer 都可以
billlee
2017-08-10 22:15:11 +08:00
正则是没问题的。除此之外用 logstash 也是可以的吧
polandeme
2017-08-10 23:26:54 +08:00
@billlee 功能点比较小,没用过 logstash,有必要去用么?
guiqiqi
2017-08-11 08:50:08 +08:00
如果日志格式是固定的,输出也是按照时间,私以为想要查找可以采取二分的办法,也许能节约点时间。
另外 re 的效率好像不是很高,50M 应该还是可以的,但是在大好像不好使了,如果按行遍历,也许 startswith 快一点。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/382020

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX