代码之家  ›  专栏  ›  技术社区  ›  Juicy

在设置处理程序和日志级别之后,记录器不会打印调试消息

  •  1
  • Juicy  · 技术社区  · 6 年前

    我有下面一个极简主义的例子 logging 基于 Logging Cookbook

    import logging
    
    logger = logging.getLogger('test')
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - '
                                  '%(message)s')
    
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    
    
    print(logger.handlers)
    logger.debug('hello world')
    

    以上输出如下:

    $ python test_log.py
    [<StreamHandler <stderr> (DEBUG)>]
    

    hello world 在上面的示例中显示的日志消息。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vinay Sajip    6 年前

    如果没有显式设置记录器的级别,系统将查找祖先记录器的级别,直到找到显式设置其级别的记录器为止。在本例中,是根记录器,它是名为“test”的记录器的父级。将此记录器或根记录器的级别设置为“调试”将导致输出日志消息。见 this part Python日志中事件信息流的文档。