Получение выходных данных журнала и stdout в правильном порядке в Jupyter Notebook - PullRequest
0 голосов
/ 19 апреля 2020

logging выход из строя в ноутбуке Jupyter, вот пример.

Обычный сеанс i python:

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 вывод не в порядке:

enter image description here

Вывод logging печатается раньше всего. Это делает невозможной отладку, поскольку теряется какой-либо признак того, где произошел оператор logging.

Это происходит с любым уровнем ведения журнала.

Как получить выходные данные в правильном порядке, в отличие от logging выход получает свое особое место?

1 Ответ

0 голосов
/ 19 апреля 2020

Вы можете исправить это, установив stream в sys.stdout. Это удалит любую специальную обработку для регистрации сообщений в Jupyter Notebook, я думаю.

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...