Get Output From the logging Module in IPython Notebook

前端 未结 9 1574
悲哀的现实
悲哀的现实 2020-11-30 19:19

When I running the following inside IPython Notebook I don\'t see any output:

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


        
相关标签:
9条回答
  • 2020-11-30 19:55

    It seems that solutions that worked for older versions of ipython/jupyter no longer work.

    Here is a working solution for ipython 7.9.0 (also tested with jupyter server 6.0.2):

    import logging
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    logging.debug("test message")
    
    DEBUG:root:test message
    
    0 讨论(0)
  • 2020-11-30 19:57

    Bear in mind that stderr is the default stream for the logging module, so in IPython and Jupyter notebooks you might not see anything unless you configure the stream to stdout:

    import logging
    import sys
    
    logging.basicConfig(format='%(asctime)s | %(levelname)s : %(message)s',
                         level=logging.INFO, stream=sys.stdout)
    
    logging.info('Hello world!')
    
    0 讨论(0)
  • 2020-11-30 19:59

    Try following:

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

    According to logging.basicConfig:

    Does basic configuration for the logging system by creating a StreamHandler with a default Formatter and adding it to the root logger. The functions debug(), info(), warning(), error() and critical() will call basicConfig() automatically if no handlers are defined for the root logger.

    This function does nothing if the root logger already has handlers configured for it.

    It seems like ipython notebook call basicConfig (or set handler) somewhere.

    0 讨论(0)
提交回复
热议问题