es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Kaggle Notebook no imprime registros.

Mi cuaderno de Kaggle no imprime salidas.

import logging
import sys
def defaultLogger(name="fashiondataset", level=logging.DEBUG, handlers=None,
                  format='[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s'):
    handlers = handlers if handlers else [logging.StreamHandler(sys.stdout)]

logging.basicConfig(level=level, format=format, handlers=handlers)

logger = logging.getLogger(name)

logging.getLogger("matplotlib").setLevel(logging.WARNING)
logging.getLogger("nltk_data").setLevel(logging.WARNING)
logging.getLogger("pysndfx").setLevel(logging.WARNING)
logging.getLogger('selenium.webdriver.remote.remote_connection').setLevel(logging.WARNING)
logging.getLogger('connectionpool').setLevel(logging.WARNING)
logging.getLogger("requests").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)

return logger
print("Probando Logger")
logger = defaultLogger()
logger.info("Probando Log de información")
logger.debug("Probando Log de depuración")
logger.error("Probando Log de error")
print("Probando Logger [HECHO]")

Intenté agregar logging.getLogger(name).setLevel(logging.DEBUG) pero no cambia nada. TQDM / Tensorflow Progressbars están funcionando.

Edit://
sys.stdout.write("prueba") funciona.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema no está con el registro en sí, sino con la configuración del Jupyter Notebook. Normalmente, los Jupyter Notebooks imprimen automáticamente la salida de la última línea en una celda, sin embargo, a veces este comportamiento puede cambiar debido a diferentes configuraciones.

    Puedes intentar agregar este comando a la celda donde quieres ver la salida:

    from IPython.core.interactiveshell import InteractiveShell
    InteractiveShell.ast_node_interactivity = "all"
    

    Esto debería obligar a Jupyter a mostrar todas las salidas generadas por la celda, incluyendo las del registro.

    Otra cosa que puedes intentar es usar la instrucción print en lugar del registro, como mencionaste que sys.stdout.write("test") funciona. Sin embargo, ten en cuenta que esto puede no ser la mejor práctica para fines de registro, y se recomienda usar el registro para proyectos más complejos.

    Por último, asegúrate de que la salida no esté siendo redirigida o suprimida por ningún otro medio, como usar el comando mágico %%capture o similar.

    ¡Espero que esto ayude! Hazme saber si tienes alguna otra pregunta.

Comments are closed.