实时读取日志文件,如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 方法做个异常处理,防止文件短期不存在。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,993评论 2 59
  • 技术背景 由cloudera软件公司产出的可分布式日志收集系统,后与2009年被捐赠了apache软件基金会,为h...
    章云邰阅读 1,149评论 0 1
  • 兰瑟作为一个已经工作有4年经验的测试工程师,其间也辗转了几个大的互联网公司,虽然确实缺少了一些稳定性,但同时也积累...
    依然小阿K阅读 1,161评论 0 5
  • 前言 本开发规范基于《阿里巴巴Java开发手册终极版》修改,并集成我们自己的项目开发规范,整合而成。 为表示对阿里...
    4ea0af17fd67阅读 5,667评论 0 5
  • 来源与:阿里云栖 禁止用于商业用途 ps:如果需要电子书 评论你们邮箱 我会发给你们 下面感觉还是有点乱 目录 一...
    小向资源网阅读 7,688评论 0 12