• 11-21 logging 模块


      默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,

    这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),

    默认的日志格式为日志级别:Logger名称:用户输出消息。

    函数式简单配置

    import logging
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                        datefmt='%a, %d %b %Y %H:%M:%S',
                        filename='test.log',
                        filemode='w')
    logging.debug('debug message')    #低级别  #拍错信息
    logging.info('info message')      #正常信息
    logging.warning('warning message')#警告信息
    logging.error('error message')    #错误信息
    logging.critical('critical message')#高级别的 #严重错误信息
    try:
        int(input('num>>>'))
    except ValueError:
        logging.error('输入的值类型不对!')
    
    basicconfig:简单,但能解决的事情相对较少
    不能解决中文乱码问题
    不能同时在文件和屏幕上输出

    此时解决了中文乱码问题,也可同时在文件和屏幕上输出---程序的充分解耦,让程序变的高可定制

    import logging
    #创建一个logger对象
    logger = logging.getLogger()
    fh = logging.FileHandler('log.log',encoding='utf-8')
    #创建一个屏幕打印对象
    sh = logging.StreamHandler()
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    formatter2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - [line:%(lineno)d] - %(message)s')
    #文件操作符 和 格式关联
    fh.setFormatter(formatter)
    sh.setFormatter(formatter2)
    #logger对象 和 文件操作符关联
    logger.addHandler(fh)
    logger.addHandler(sh)
    logging.debug('debug message')
    logging.info('info message')
    logging.warning('警告信息')
    logging.error('error message')
    logging.critical('critical message')
    

    总结:

    有5种级别的日志记录模式:debug、info、warning、error、critical
    2种配置方式:basicconfig、log对象

     

     

  • 相关阅读:
    Mac 下VirtualBox与Linux共享文件
    安装LAMP 环境Linux 16.04 + Apache2 + Php7.0
    Python调用OpenCV读写视频
    [tensorflow] FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated
    VS Qt国际化操作
    OpenCV--基于直线检测的文本图像倾斜校正
    Python调用OpenCV形态学
    Keras设置后端数据维度顺序
    Python调用OpenCV代码优化
    Python调用OpenCV滤波
  • 原文地址:https://www.cnblogs.com/Cheryol/p/9995580.html
Copyright © 2020-2023  润新知