簡體   English   中英

在 Jupyter Notebook 中以正確的順序記錄 output 和標准輸出

[英]Getting logging output and stdout in correct order in Jupyter Notebook

logging output 在 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 中,output 出現故障:

在此處輸入圖像描述

logging output 在其他所有內容之前打印。 這使得調試變得不可能,因為人們會丟失任何logging語句發生位置的指示。

這發生在任何日志級別。

如何以正確的順序獲得 output,而不是logging output 獲得自己的特殊位置?

您可以通過將stream設置為sys.stdout來解決此問題。 我猜這將刪除在 Jupyter Notebook 中記錄消息的任何特殊處理。

import logging
import sys
logging.basicConfig(stream=sys.stdout)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM