当前位置:首页 > 日记本 > 正文内容

python在linux上输出日志不展示怎办?

zhangchap2年前 (2022-03-05)日记本764

写了个监测服务器的脚本,加入宝塔的定时任务后print输出不及时。但是过一段时间,还是有输出....

百思得其解!应该是被缓存了。

像下面这样 似乎和缓存相关 -u能禁止缓存

Python 会有一个缓存,导致输出不会及时地保存到 log 文件中,只需要通过 一个参数 -u 就可以取消 这种缓冲。

python3 -u /www/wwwroot/wnce/jiance.py


原因是python缓存机制,其实python中的print语句就是调用了sys.stdout.write(),而stdout是有缓存的,只有遇到换行或者积累到一定的大小,才会显示出来。


-u 参数的使用:python命令加上-u参数后会强制使用stderr,不通过缓存直接打印到屏幕。


虽然stderr和stdout默认都是指向屏幕的,但是stderr是无缓存的,程序往stderr输出一个字符,就会在屏幕上显示一个;这就是为什么上面的会最先显示两个stderr的原因。



标签: 日志
分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。