polandeme
V2EX  ›  问与答

Python 处理 log 入库

  •  1
     
  •   polandeme · Aug 10, 2017 · 2915 views
    This topic created in 3375 days ago, the information mentioned may be changed or developed.

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

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

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

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

    7 replies  •  2017-08-11 08:50:08 +08:00
    shiroming
    shiroming
    Aug 10, 2017 via Android
    1
    正则匹配呗
    polandeme
    polandeme
    OP
    Aug 10, 2017
    2
    @shiroming 一行一行读,然后正则匹配?
    shiroming
    shiroming
    Aug 10, 2017 via Android
    3
    😏50m 一次读才简单粗暴
    ipwx
    ipwx
    Aug 10, 2017
    4
    才 50MB。。

    读进来,然后 re.findall 或者 re.finditer 都可以
    billlee
    billlee
    Aug 10, 2017
    5
    正则是没问题的。除此之外用 logstash 也是可以的吧
    polandeme
    polandeme
    OP
    Aug 10, 2017
    6
    @billlee 功能点比较小,没用过 logstash,有必要去用么?
    guiqiqi
    guiqiqi
    Aug 11, 2017 via iPhone
    7
    如果日志格式是固定的,输出也是按照时间,私以为想要查找可以采取二分的办法,也许能节约点时间。
    另外 re 的效率好像不是很高,50M 应该还是可以的,但是在大好像不好使了,如果按行遍历,也许 startswith 快一点。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1657 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 11:37 · PVG 19:37 · LAX 03:37 · JFK 06:37
    ♥ Do have faith in what you're doing.