# -*- coding: utf-8 -*-"""If your log file is in a standard format, then this module can help you filterout log information that you care aboue.**中文文档**如果你的日志格式是标准的 "%(asctime)s; %(levelname)-8s; %(message)s"。那么本模块中的函数能够帮助您从日志中轻松的找到你感兴趣的结果。"""from__future__importprint_function
[docs]deffind(path,level=None,message=None,time_lower=None,time_upper=None,case_sensitive=False):# pragma: no cover""" Filter log message. **中文文档** 根据level名称, message中的关键字, 和log的时间的区间, 筛选出相关的日志 """iflevel:level=level.upper()# level name has to be capitalized.ifnotcase_sensitive:message=message.lower()withopen(path,"r")asf:result=Result(path=path,level=level,message=message,time_lower=time_lower,time_upper=time_upper,case_sensitive=case_sensitive,)forlineinf:try:_time,_level,_message=[i.strip()foriinline.split(";")]iflevel:if_level!=level:continueiftime_lower:if_time<time_lower:continueiftime_upper:if_time>time_upper:continueifmessage:ifnotcase_sensitive:_message=_message.lower()ifmessagenotin_message:continueresult.lines.append(line)exceptExceptionase:print(e)returnresult