解析日志文件并将值存储在Ruby中的对象中

时间:2015-07-06 09:34:58

标签: ruby

我有一个生成以下数据的日志文件:

2015-07-06 11:07:24 +0522 [ERROR] 
2015-07-06 11:07:29 +0522 [ERROR] index=healthe-int-legacy host=kdatamap.abc.com com.rp.keplar.collector.CollectorException: Could not process additional data, connection lost to data collector service

我想将数据存储在不同的部分,例如日期,时间,索引值和错误相关信息,例如“无法处理其他数据,数据收集器服务连接丢失”到数据库中。如何解析以便我可以轻松存储在DB中?请指导我。

1 个答案:

答案 0 :(得分:0)

您希望阅读功能强大的FileString课程手册。

考虑这个相当快速的黑客攻击:

aFile = File.new("/your/file.dat")
    aFile.each_line { |line|
        arr = line.split
        print "date  = " + arr[0] + "\n"
        print "time  = " + arr[1] + "\n"
        print "index = " + arr[4].split('=')[1]
}

没有考虑到文件可能不存在或者行可能以不同方式对齐。看看''''''''''''''用于实现更健壮(但不幸的是更难以阅读)的匹配算法的表达式。

基本I / O在http://ruby-doc.com/docs/ProgrammingRuby/html/tut_io.html描述。