首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
polandeme
V2EX  ›  问与答

Python 处理 log 入库

  •  1
     
  •   polandeme · 2017-08-10 20:01:30 +08:00 · 1415 次点击
    这是一个创建于 895 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    7 回复  |  直到 2017-08-11 08:50:08 +08:00
    shiroming
        1
    shiroming   2017-08-10 20:25:56 +08:00 via Android
    正则匹配呗
    polandeme
        2
    polandeme   2017-08-10 20:26:19 +08:00
    @shiroming 一行一行读,然后正则匹配?
    shiroming
        3
    shiroming   2017-08-10 20:51:57 +08:00 via Android
    😏50m 一次读才简单粗暴
    ipwx
        4
    ipwx   2017-08-10 20:56:16 +08:00
    才 50MB。。

    读进来,然后 re.findall 或者 re.finditer 都可以
    billlee
        5
    billlee   2017-08-10 22:15:11 +08:00
    正则是没问题的。除此之外用 logstash 也是可以的吧
    polandeme
        6
    polandeme   2017-08-10 23:26:54 +08:00
    @billlee 功能点比较小,没用过 logstash,有必要去用么?
    guiqiqi
        7
    guiqiqi   2017-08-11 08:50:08 +08:00 via iPhone
    如果日志格式是固定的,输出也是按照时间,私以为想要查找可以采取二分的办法,也许能节约点时间。
    另外 re 的效率好像不是很高,50M 应该还是可以的,但是在大好像不好使了,如果按行遍历,也许 startswith 快一点。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1902 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 10:33 · PVG 18:33 · LAX 02:33 · JFK 05:33
    ♥ Do have faith in what you're doing.