python 读取日志文件_如何在Python中跟踪日志文件?

这篇博客介绍了如何在Python中使用`sh`模块的`tail`命令实时读取日志文件。通过一个生成器无限循环,当日志文件有新数据时,会输出新的日志行。同时,讨论了不同实现方式的优缺点,包括处理文件不可访问或无新数据的情况。文章最后建议明确需求以获取更精确的解决方案。
摘要由CSDN通过智能技术生成

使用SH模块(PIP安装sh):from sh import tail# runs foreverfor line in tail("-f", "/var/log/some_log_file.log", _iter=True):

print(line)

[最新情况]

因为.尾巴和._iter=True是一个生成器,您可以:import sh

tail = sh.tail("-f", "/var/log/some_log_file.log", _iter=True)

然后,您可以使用以下方法“getNewData”:new_data = tail.next()

请注意,如果尾缓冲区是空的,它将阻塞直到有更多的数据(从您的问题,它不清楚您想做什么,在这种情况下)。

[最新情况]如果将-f替换为-f,这是可行的,但是在Python中,它将是锁定的。如果有可能的话,我会更感兴趣的是,如果可能的话,我可以调用一个函数来获取我想要的新数据。-伊莱

容器生成器将尾调用放置在一个时间真循环中,并捕获最终的I/O异常,其效果与-F几乎相同。def tail_F(some_file):

while True:

try:

for line in sh.tail("-f", some_file, _iter=True):

yield line        except sh.ErrorReturnCode_1:

yield None

如果无法访问该文件,生成器将不返回任何。但是,如果文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值