utiliser - Obtenir la sortie du module de journalisation dans IPython Notebook




utiliser jupyter notebook (4)

Essayez de suivre:

import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logging.debug("test")

D'après logging.basicConfig :

Effectue la configuration de base pour le système de journalisation en créant un StreamHandler avec un Formatter par défaut et en l'ajoutant à l'enregistreur racine. Les fonctions debug (), info (), warning (), error () et critical () appellent basicConfig () automatiquement si aucun gestionnaire n'est défini pour l'enregistreur racine.

Cette fonction ne fait rien si l'enregistreur racine a déjà des gestionnaires configurés pour cela.

Il semble que ipython notebook appelle basicConfig (ou set handler) quelque part.

Lorsque j'exécute le suivant dans IPython Notebook, je ne vois aucune sortie:

import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("test")

Quelqu'un sait comment faire pour que je puisse voir le message "test" dans le cahier?


Gardez à l'esprit que stderr est le flux par défaut pour le module de logging , donc dans les carnets IPython et Jupyter, vous ne verrez rien si vous ne configurez pas le flux sur stdout:

import logging
import sys

logging.basicConfig(format='%(asctime)s | %(levelname)s : %(message)s',
                     level=logging.INFO, stream=sys.stdout)

logging.info('Hello world!')

Si vous voulez toujours utiliser basicConfig , rechargez le module de journalisation comme ceci

import logging
reload(logging)
logging.basicConfig(format='%(asctime)s %(levelname)s:%(message)s', level=logging.DEBUG, datefmt='%I:%M:%S')

Vous pouvez configurer la journalisation en exécutant %config Application.log_level="INFO"

Pour plus d'informations, voir Options du noyau IPython







ipython-notebook