zoukankan      html  css  js  c++  java
  • python之logging模块

    日志五个级别

    DEBUG: debug()        
        调试信息,通常在诊断问题的时候用得着    
    INFO: info()        
        普通信息,确认程序按照预期运行     
    WARNING: warning()        
        警告信息,表示发生意想不到的事情,或者指示接下来可能会出现一些问题,
        但是程序还是继续运行    
    ERROR: error()        
        错误信息,程序运行中出现了一些问题,一些功能没有执行    
    CRITICAL: critical()        
        危险信息,一个严重的错误,导致程序无法继续运行
    import logging
    
    logging.debug('debug')
    logging.info('info')
    # 默认输出级别
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')
    
    WARNING:root:warning
    ERROR:root:error
    CRITICAL:root:critical

    修改logging输出的默认级别

    logging.basicConfig(level=logging.INFO)
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')

    logging信息保存到文件当中 就不输出了,直接保存到文件当中 (默认追加)

    logging.basicConfig(level=logging.INFO,filename='logging_test.log')
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')

    logging信息保存到文件当中 就不输出了,直接保存到文件当中 (覆盖模式)

    logging.basicConfig(level=logging.INFO,filename='logging_test.log',filemode='w')
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')

    日志信息格式化输出 %()

    logging.basicConfig(level=logging.INFO, filename='logging_test.log', format='%(levelname)--s:%(asctime)s:%(message)s')
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')

    模块化组件

    #1.日志记录器
    # 调用getLogger方法创建日志记录器, 实例化一个日志记录器,并且命名为'test_logger
    log = logging.getLogger('test_logger')
    
    #2.日志处理器
    logFileHandler = logging.FileHandler(filename='logging_test.log')
    
    #3.过滤器
    # 将处理器添加到log记录器
    log.addHandler(logFileHandler)
    #将格式器添加至日日志处理器
    logFileHandler.setFormatter(format)
        """
        # 将日志信息发送到控制台
        logging.StreamHandler
        # 将日志信息写入到文件
        logging.FileHandler
        # 将日志信息发送到指定邮箱
        logging.SMTPHandler
        # 通过get或post将日志信息发送到服务器
        logging.HttpHandler
        """
    
    #4.格式器
    format = logging.Formatter('%(asctime)s:%(name)s:%(levelname)s:%(message)s', datefmt='%Y/%m/%d %I:%M:%S')

    流程:格式器 =》 处理器 =》记录器

  • 相关阅读:
    【转】Android之Inflate()方法用途+setContentView和inflate区别
    【转】Android 面试题笔记android五种布局及其作用
    温故知新系列(一)冒泡排序
    一道Java面试题目——随想+心得
    关于String 和 StringBuffer、StringBuilder
    Mysql变量
    Mysql函数
    Mysql流程控制
    Mysql事物
    Mysql视图
  • 原文地址:https://www.cnblogs.com/shuai06/p/12397482.html
Copyright © 2011-2022 走看看