实时读取日志文件,如nginx

简单定义了方法,实现了tail -f 的功能。实际使用最好自己封装成class 。

直接上代码

import time
def read_file(file_path,fail_reload_stamp =10):
    reload_stamp = time.time() #初始化 时间戳
    f = open(file_path,'r');
    f.seek(0,2)
    while True:
        row_content = f.readline()
        if not row_content:
            if time.time() - reload_stamp >fail_reload_stamp:
                 f = open(file_path,'r');
                 f.seek(0,2)
                 print("reload file .....")
            time.sleep(1)
            continue
        reload_stamp = time.time()
        print(row_content)


if __name__ == "__main__":
   read_file('file path')

建议 open 方法做个异常处理,防止文件短期不存在。

你可能感兴趣的:(实时读取日志文件,如nginx)