logging
在 Jupyter Notebook 中输出乱序,这里是一个例子。
普通 ipython session :
In [1]: import logging
In [2]: for i in range(5):
...: print(i)
...: if i == 3:
...: logging.critical("critical")
...:
0
1
2
3
CRITICAL:root:critical
4
In [3]:
但在 Jupyter Notebook 中,输出是乱序的:
logging
输出在其他所有内容之前打印。这使得调试变得不可能,因为人们会丢失任何指示 logging
语句发生的位置。
任何日志记录级别都会发生这种情况。
我怎样才能以正确的顺序获得输出,而不是 logging
输出有自己的特殊位置?
最佳答案
您可以通过将 stream
设置为 sys.stdout
来解决这个问题。我猜这将消除对 Jupyter Notebook 中记录消息的任何特殊处理。
import logging
import sys
logging.basicConfig(stream=sys.stdout)
关于python - 在 Jupyter Notebook 中以正确的顺序获取日志输出和标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61307831/