与 Python 日志记录默认写入标准输出还是标准输出相关? 但我想知道为什么它默认为stderr
而不是默认值是什么。
对我来说,为什么stderr
是默认值并不明显。我注意到运行python script.py | tee out.log
时出现问题,最终日志文件为空。现在我知道它可以通过python script.py 2>&1 | tee out.log
或使用stream
参数来解决:
logging.basicConfig(stream=sys.stdout)
在那次事件之后,在我看来,将默认stream
更改为每个脚本中的stdout
似乎是合理的,以避免再次感到惊讶。这是一种好的做法吗?我会错过什么吗?
计算机程序基本上将数据作为输入,创建数据作为输出。 当程序运行时,由于监视,可以通知其操作,而无需更改其输出数据。为此,计算机程序传统上有两个输出,一个用于数据的标准输出,另一个用于监视(日志记录和错误(:stderr。
当您的程序是可管道的时,这尤其有用:例如,视频像素之间不会有错误消息,因为它会破坏您的数据。