在python中按日期范围过滤日志的最佳方法

eri*_*dus 3 python logging parsing

打印与日期时间范围匹配的日志行的最佳方法是什么.例如:

我想只打印日期为:2012/09/30-00:00:10到:2012/09/30-00:00:13

2012/09/30-00:00:08.773 log error
2012/09/30-00:00:09.034 log warning
2012/09/30-00:00:09.352 log info
2012/09/30-00:00:10.526 log info
2012/09/30-00:00:10.995 log warning
2012/09/30-00:00:12.014 log warning
2012/09/30-00:00:18.035 log error
2012/09/30-00:00:21.733 log fatal
2012/09/30-00:00:21.981 log info
Run Code Online (Sandbox Code Playgroud)

它应该打印:

2012/09/30-00:00:10.526 log line
2012/09/30-00:00:10.995 log line
2012/09/30-00:00:12.014 log line
Run Code Online (Sandbox Code Playgroud)

我想以经济有效的方式做到这一点,因为我正在使用生产服务器.Python只请.谢谢!

Mak*_*cha 6

Actullay,日志格式允许比较日期字符串而不转换为datetime.

with open('mylog.log','r') as f:
    for line in f:
        d = line.split(" ",1)[0] 
        if d >= '2012/09/30-00:00:10' and d <= '2012/09/30-00:00:13':
            print line
Run Code Online (Sandbox Code Playgroud)

  • 或者利用Python条件系统并使用`if'2012/09/30-00:00:10'<= d <='2012/09/30-00:00:13'` (4认同)