胖鸭子的Linux笔记
一个自由软件爱好者的经验记录
2013年8月19日星期一
Python程序的日志顺序混乱
Python 2程序的日志打在文件里面,但是文件中日志出现的顺序和打印日志语句的执行顺序不一致,是混乱的。
研究发现,有的日志是用
logging
模块打出的,而有的用
print
语句打出。查看
logging
模块的源码,对stream输出,每次
emit
一条record,就会对stream进行
flush
。而
print
用的是系统默认的缓存方式,对没有tty的文件的输出,默认是块缓存。
程序启动时候用
python -u
就可以让
stdin
,
stdout
不缓存了,应该就不会混乱了。
参考
1
、
2
。
没有评论:
发表评论
较新的博文
较早的博文
主页
订阅:
博文评论 (Atom)
没有评论:
发表评论