美文网首页
xy之python之logging模块

xy之python之logging模块

作者: __XY__ | 来源:发表于2017-06-27 10:45 被阅读0次

    首先创建一个最简单的logging模块应用程序

    #!/usr/local/bin/python
    # -*- coding:utf-8 -*-
    import logging
    
    logging.debug('debug message')
    logging.info('info message')
    logging.warn('warn message')
    logging.error('error message')
    logging.critical('critical message')
    

    运行后可发现默认的格式为
    level:logger实例名称(默认为root):message

    简单配置

    #!/usr/local/bin/python
    # -*- coding:utf-8 -*-
    import logging
    
    # 通过下面的方式进行简单配置输出方式与日志级别
    logging.basicConfig(filename='logger.log', level=logging.INFO)
    
    logging.debug('debug message')
    logging.info('info message')
    logging.warn('warn message')
    logging.error('error message')
    logging.critical('critical message')
    

    几个概念

    • Logger 记录器,暴露了应用程序代码能直接使用的接口。
    • Handler 处理器,将(记录器产生的)日志记录发送至合适的目的地。
    • Filter 过滤器,提供了更好的粒度控制,它可以决定输出哪些日志记录。
    • Formatter 格式化器,指明了最终输出中日志记录的布局。

    logger

    Logger是一个树形层级结构,在使用接口debug,info,warn,error,critical之前必须创建Logger实例,即创建一个记录器,如果没有显式的进行创建,则默认创建一个root logger,并应用默认的日志级别(WARN),处理器Handler(StreamHandler,即将日志信息打印输出在标准输出上),和格式化器Formatter(默认的格式即为第一个简单使用程序中输出的格式)。

    logger = logging.getLogger(logger_name)
    

    创建Logger实例后,可以使用以下方法进行日志级别设置,增加处理器Handler。

    • logger.setLevel(logging.ERROR) # 设置日志级别为ERROR,即只有日志级别大于等于ERROR的日志才会输出
    • logger.addHandler(handler_name) # 为Logger实例增加一个处理器
    • logger.removeHandler(handler_name) # 为Logger实例删除一个处理器

    Handler 处理器

    Handler处理器类型有很多种,比较常用的有三个,StreamHandlerFileHandlerNullHandler,详情可以访问Python logging.handlers
    创建StreamHandler之后,可以通过使用以下方法设置日志级别,设置格式化器Formatter,增加或删除过滤器Filter。

    • ch.setLevel(logging.WARN) # 指定日志级别,低于WARN级别的日志将被忽略
    • ch.setFormatter(formatter_name) # 设置一个格式化器formatter
    • ch.addFilter(filter_name) # 增加一个过滤器,可以增加多个
    • ch.removeFilter(filter_name) # 删除一个过滤器
      ps:
    ![Uploading logging_172463.png . . .]

    参考
    http://www.jianshu.com/p/feb86c06c4f4

    相关文章

      网友评论

          本文标题:xy之python之logging模块

          本文链接:https://www.haomeiwen.com/subject/blnscxtx.html