我有一个生成以下数据的日志文件:
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中?请指导我。
答案 0 :(得分:0)
考虑这个相当快速的黑客攻击:
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描述。