tutorial trabajar tablas programar notebook hacer español escribir con como python logging ipython-notebook

python - tablas - trabajar con jupyter notebook



Obtener salida del módulo de registro en el cuaderno IPython (5)

Cuando ejecuto lo siguiente dentro de IPython Notebook, no veo ningún resultado:

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

¿Alguien sabe cómo hacerlo para que pueda ver el mensaje de "prueba" dentro de la computadora portátil?


Pruebe lo siguiente:

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

De acuerdo con logging.basicConfig :

Hace la configuración básica para el sistema de registro mediante la creación de un StreamHandler con un formateador predeterminado y agregarlo al registrador de raíz. Las funciones debug (), info (), warning (), error () y critical () llamarán a basicConfig () automáticamente si no se definen manejadores para el registrador de raíz.

Esta función no hace nada si el registrador de raíz ya tiene controladores configurados para él.

Parece que el cuaderno ipython llama a basicConfig (o al controlador de configuración) en algún lugar.


Puede configurar el registro ejecutando %config Application.log_level="INFO"

Para obtener más información, consulte las opciones del kernel de IPython


Según entiendo, la sesión de IPython inicia el registro de modo que basicConfig no funciona. Aquí está la configuración que funciona para mí (ojalá esto no fuera tan asqueroso, ya que quiero usarlo para casi todos mis cuadernos):

import logging logger = logging.getLogger() fhandler = logging.FileHandler(filename=''mylog.log'', mode=''a'') formatter = logging.Formatter(''%(asctime)s - %(name)s - %(levelname)s - %(message)s'') fhandler.setFormatter(formatter) logger.addHandler(fhandler) logger.setLevel(logging.DEBUG)

Ahora cuando corro:

logging.error(''hello!'') logging.debug(''This is a debug message'') logging.info(''this is an info message'') logging.warning(''tbllalfhldfhd, warning.'')

Obtengo un archivo "mylog.log" en el mismo directorio que mi computadora portátil que contiene:

2015-01-28 09:49:25,026 - root - ERROR - hello! 2015-01-28 09:49:25,028 - root - DEBUG - This is a debug message 2015-01-28 09:49:25,029 - root - INFO - this is an info message 2015-01-28 09:49:25,032 - root - WARNING - tbllalfhldfhd, warning.

Tenga en cuenta que si vuelve a ejecutar esto sin reiniciar la sesión de IPython, escribirá entradas duplicadas en el archivo, ya que ahora habrá dos manejadores de archivos definidos


Si aún desea usar basicConfig , vuelva a cargar el módulo de registro como este

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


Tenga en cuenta que stderr es la secuencia predeterminada para el módulo de logging , por lo que en los portátiles IPython y Jupyter es posible que no vea nada a menos que configure la transmisión en stdout:

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