如何在Python中使用logging模块进行日志输出?

我在使用Python进行开发时,需要在程序中添加日志输出以便于调试和排错。听说使用logging模块可以实现这个功能,但我不知道具体的实现方法。请问有经验的开发者能否给我提供一个使用logging模块输出日志的示例代码和详细步骤?感谢您的帮助!

提问时间:2023-05-14 17:53:04 编辑时间:2023-05-14 17:53:06 提问者: 莫愁湖畔
  • Soul_Surfer
    3

    当然可以。下面是一个简单的使用logging模块输出日志的示例代码:

    import logging
    
    # 创建一个logger对象
    logger = logging.getLogger('mylogger')
    logger.setLevel(logging.DEBUG)
    
    # 创建一个文件输出流
    fh = logging.FileHandler('mylog.log')
    fh.setLevel(logging.DEBUG)
    
    # 创建一个输出格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    
    # 将输出流添加到logger对象中
    logger.addHandler(fh)
    
    # 输出日志信息
    logger.debug('debug message')
    logger.info('info message')
    logger.warning('warning message')
    logger.error('error message')
    logger.critical('critical message')
    

    在上面的代码中,首先我们创建了一个logger对象,通过设置其日志级别为DEBUG,指定日志的级别大于等于DEBUG的日志消息才会被输出。

    然后,我们创建了一个FileHandler对象,指定输出日志信息到一个文件中,并设置其日志级别为DEBUG。

    接下来,我们创建一个formatter对象,指定输出日志的格式。

    最后,我们将输出流添加到logger对象中,即完成了logging模块的配置。

    在最后一步,我们分别使用了logger对象输出了五条日志信息,它们的日志级别分别为DEBUG、INFO、WARNING、ERROR和CRITICAL。

    这样,我们就通过logging模块输出了几条日志信息,并且将其输出到了一个文件中。如果你想输出到控制台,只需要将FileHandler改成StreamHandler即可。

    回答时间:2023-05-15 02:30:27