Quando executo o seguinte no IPython Notebook, não vejo saída:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("test")
Alguém sabe como fazer isso para que eu possa ver a mensagem "teste" dentro do notebook?
python
logging
jupyter-notebook
jupyter
Kyle Brandt
fonte
fonte
ipython3 notebook --version
retorna1.0.0
Respostas:
Tente o seguinte:
De acordo com logging.basicConfig :
Parece que o notebook ipython chama o basicConfig (ou o manipulador de conjunto) em algum lugar.
fonte
logger
seja criada.ipykernel
4.5 (possivelmente no 4.4) github.com/jupyter/notebook/issues/1397Se você ainda deseja usar
basicConfig
, recarregue o módulo de registro como estefonte
reload
é agoraimp.reload
Meu entendimento é que a sessão do IPython inicia o log para que o basicConfig não funcione. Aqui está a configuração que funciona para mim (eu gostaria que isso não fosse tão grosseiro, pois eu quero usá-lo em quase todos os meus notebooks):
Agora, quando eu corro:
Eu recebo um arquivo "mylog.log" no mesmo diretório do meu notebook que contém:
Observe que, se você executar novamente isso sem reiniciar a sessão do IPython, ele gravará entradas duplicadas no arquivo, pois agora haverá dois manipuladores de arquivos definidos
fonte
Lembre-se de que stderr é o fluxo padrão do
logging
módulo; portanto, nos blocos de anotações IPython e Jupyter, talvez você não veja nada, a menos que configure o fluxo para stdout:fonte
O que funcionou para mim agora (Jupyter, servidor de notebook é: 5.4.1, IPython 7.0.1)
Agora eu posso usar o logger para imprimir informações, caso contrário, veria apenas uma mensagem do nível padrão (
logging.WARNING
) ou superior.fonte
basicConfig()
tp torná-lo trabalho.Você pode configurar o log executando
%config Application.log_level="INFO"
Para obter mais informações, consulte Opções do kernel do IPython
fonte
%config
para ver os classificados classificados,Application
não é um deles. ipython 7.9.0 aqui.Eu configurei um logger para os dois arquivos e queria que ele aparecesse no notebook. Acontece que adicionar um manipulador de arquivos limpa o handolder de fluxo padrão.
fonte
Parece que as soluções que funcionavam para versões mais antigas do ipython / jupyter não funcionam mais.
Aqui está uma solução funcional para o ipython 7.9.0 (também testada com o jupyter server 6.0.2):
fonte