Unix / Linux简单日志parsing器(自从,直到)

有没有人曾经使用/创build了一个简单的unix / linux日志parsing器,可以parsing如下所示的日志:

timestamp log_message \n 

订购消息,parsing时间戳,然后返回:

  • 所有消息
  • 某个date之后的消息(–since)
  • 某个date之前的消息(–until)
  • – 从 – 的组合, – 直到

我可以写这样的东西,但不知道是否有什么jar头。 这将适合我正在计划的一些自动化报告。

看看我写的这个Python程序 ,看看它是否接近你正在寻找或可以适应你的需求。

即使你find一个我不知道我是否会信任它。 例如,由于时间戳事先不知道,所以只能区分DD-MM-YYYY和MM-DD-YYYY,直到xx或zz与xx-zz-YYYY大于我相信还有其他的问题。

编写你自己的代码将非常简单和可靠,我认为你可以将你的语言的标准string用于date时间库,并明确指定date格式说明符。

例如用Python:

  import re from datetime import datetime line_regex = re.compile( r''' \[ (?P<day> \d{1,2} ) / (?P<month> \w{3} ) / (?P<year> \d{4} ) : (?P<hour> \d{2} ) : (?P<minute> \d{2} ) : (?P<second> \d{2} ) \s (?P<timezone> -?\d{4} ) \] ''', re.VERBOSE) new_entry['time'] = datetime.strptime( parsed_line['day'] + parsed_line['month'] + parsed_line['year'] + parsed_line['hour'] + parsed_line['minute'] + parsed_line['second'] , "%d%b%Y%H%M%S" ) 

如果你想要一个模块/库,试图找出他们确实存在的格式,Perl的一个选项是Date :: Parse 。

我发现的唯一的解决scheme,甚至是一半体面的是syslog nglogging到数据库(在这一点上,它简化为简单的SQL查询) – 假设你集中logging一切,这不会添加太多额外的痛苦。

(在这里插入明显的好处和明显的警告)