为什么 Python 日志记录默认写入 stderr?

Wlo*_*oHu 13 python logging default stderr

相关Python 日志记录默认写入 stdout 或 stderr 吗?但我想知道为什么它默认为默认stderr值。

stderr对我来说,为什么是默认值并不是很明显。我注意到运行时出了点问题python script.py | tee out.log,最终日志文件为空。现在我知道可以通过python script.py 2>&1 | tee out.log或 使用stream参数来解决:

logging.basicConfig(stream=sys.stdout)
Run Code Online (Sandbox Code Playgroud)

在那次事件之后,我认为在每个脚本中更改默认值以避免再次感到惊讶是合理streamstdout。这是一个好的做法吗?我会错过什么吗?

mon*_*ula 7

您可能不想将默认值更改为标准输出。原因是 stderr 是所有消息的输出,这些消息只是一些内部和/或调试程序信息(如日志和错误),而不是实际输出(程序的结果)。