Когда я запускаю следующее внутри IPython Notebook, я не вижу вывода:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("test")
Кто-нибудь знает, как сделать так, чтобы я видел "тестовое" сообщение внутри записной книжки?
python
logging
jupyter-notebook
jupyter
Кайл Брандт
источник
источник
ipython3 notebook --version
возвращается1.0.0
Ответы:
Попробуйте следующее:
Согласно logging.basicConfig :
Похоже, что ipython notebook вызывает basicConfig (или устанавливает обработчик) где-то.
источник
logger
.ipykernel
Если вы все еще хотите использовать
basicConfig
, перезагрузите модуль ведения журнала, как этоисточник
reload
сейчасimp.reload
Насколько я понимаю, сеанс IPython запускает ведение журнала, поэтому basicConfig не работает. Вот установка, которая мне подходит (хотелось бы, чтобы она не выглядела так грубо, поскольку я хочу использовать ее почти для всех своих ноутбуков):
Теперь, когда я бегу:
Я получаю файл mylog.log в том же каталоге, что и моя записная книжка, который содержит:
Обратите внимание, что если вы перезапустите это без перезапуска сеанса IPython, он запишет повторяющиеся записи в файл, поскольку теперь будут определены два обработчика файлов.
источник
Имейте в виду, что stderr является потоком по умолчанию для
logging
модуля, поэтому в записных книжках IPython и Jupyter вы можете ничего не увидеть, если не настроите поток на stdout:источник
Что сработало для меня сейчас (Jupyter, сервер ноутбука: 5.4.1, IPython 7.0.1)
Теперь я могу использовать регистратор для печати информации, иначе я бы видел только сообщение с уровнем по умолчанию (
logging.WARNING
) или выше.источник
basicConfig()
тп сделать его работу.Вы можете настроить ведение журнала, запустив
%config Application.log_level="INFO"
Для получения дополнительной информации см. Параметры ядра IPython.
источник
%config
чтобы увидеть поддерживаемые классы,Application
не из их числа. ipython 7.9.0 здесь.Я установил регистратор для обоих файлов и хотел, чтобы он отображался на ноутбуке. Оказывается, добавление обработчика файлов очищает обработчик потока по умолчанию.
источник
Похоже, что решения, которые работали для более старых версий ipython / jupyter, больше не работают.
Вот рабочее решение для ipython 7.9.0 (также протестировано с jupyter server 6.0.2):
источник