linux日志文件怎么打开,是否有用于显示文件打开失败的Linux错误日志文件?

这种解决方案可能是不够的高性能满足您的需求,但无论我想报告一些我所做的研究,这些研究都可能会使您朝正确的方向发展。

首先,有在Linux系统下的/ var /日志中记录。感兴趣的是syslog和消息文件,它记录了各种系统事件。但是文件读取“错误”不会被记录下来,如下所述。

在打开不存在的文件的情况下,我们最终会寻找失败的open system call(python's open calls this)。但是在这个低级别上没有例外的概念 - 如果打开失败,它只会返回一个负数。在C中,您可以打开整天不存在的文件,并仍然让程序返回0错误代码。

这意味着你必须做一些工作,自己去跟踪这个问题。我把你的问题说成是,“我怎么能在python的例外以下的级别跟踪这些错误?”为此,您可以使用strace和grep的组合。您为每个进程附加strace,并记录发生的所有系统调用。

所以,想象一下,我们有一个C程序是这样的:

#include

int main()

{

fopen("nothere.txt","r");

}

通过运行strace的./test 2> & 1 | grep ENOENT,我们得到:

open("nothere.txt", O_RDONLY) = -1 ENOENT (No such file or directory)

你当然可以在python进程上运行strace来达到相同的结果。

事情要警惕:

你必须每个进程的重视这一点。如果你不这样做,我们会回到无声的错误。

Python会产生很多系统调用。您的日志文件可能会变大。

这里有很多IO错误。 ENOENT只是其中之一。

您将需要更复杂的字符串解析来过滤掉您不关心的系统调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值