zoukankan      html  css  js  c++  java
  • python logging 总结

    基本用法:
     
    import sys
     
    # 获取logger实例,如果参数为空则返回root logger
    logger = logging.getLogger("AppName")
     
    # 指定logger输出格式
    formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')
     
    # 文件日志
    file_handler = logging.FileHandler("test.log")
    file_handler.setFormatter(formatter)  # 可以通过setFormatter指定输出格式
     
    # 控制台日志
    console_handler = logging.StreamHandler(sys.stdout)
    console_handler.formatter = formatter  # 也可以直接给formatter赋值
     
    # 为logger添加的日志处理器
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
     
    # 指定日志的最低输出级别,默认为WARN级别
    logger.setLevel(logging.INFO)
     
    # 输出不同级别的log
    logger.debug('this is debug info')
    logger.info('this is information')
    logger.warn('this is warning message')
    logger.error('this is error message')
    logger.fatal('this is fatal message, it is same as logger.critical')
    logger.critical('this is critical message')
     
    # 2018-04-08 21:59:19,493 INFO    : this is information
    # 2018-04-08 21:59:19,493 WARNING : this is warning message
    # 2018-04-08 21:59:19,493 ERROR   : this is error message
    # 2018-04-08 21:59:19,493 CRITICAL: this is fatal message, it is same as logger.critical
    # 2018-04-08 21:59:19,493 CRITICAL: this is critical message
     
    # 移除一些日志处理器
    logger.removeHandler(file_handler)
     
     
     
    格式化输出技巧
    # 格式化输出
     
    service_name = "Booking"
    logger.error('%s service is down!' % service_name)  # 使用python自带的字符串格式化,不推荐
    logger.error('%s service is down!', service_name)  # 使用logger的格式化,推荐
    logger.error('%s service is %s!', service_name, 'down')  # 多参数格式化
    logger.error('{} service is {}'.format(service_name, 'down')) # 使用format函数,推荐
     
    # 2018-04-08 21:59:19,493 ERROR   : Booking service is down!
     
     
     
    logging.basicConfig
     basicConfig()提供了非常便捷的方式让你配置logging模块并马上开始使用
     
     
    import logging
     
    logging.basicConfig(filename='example.log',level=logging.DEBUG)
    logging.debug('This message should go to the log file')
     
    logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
    logging.debug('This message should appear on the console')
     
    logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
    logging.warning('is when this event was logged.')
     
     备注: 其实你甚至可以什么都不配置直接使用默认值在控制台中打log,用这样的方式替换print语句对日后项目维护会有很大帮助。
     
     
     
  • 相关阅读:
    shell脚本按当前日期输出日志
    bat弹出确认或取消窗口
    bat脚本输出日志
    北京浩赢科技有限公司与好宝多多
    bat延迟执行脚本,利用choice实现定时执行功能
    centos下安装tunctl
    OpenStack Train版 简单部署流程(4)- octavia
    LVM基础
    OpenStack Train版 简单部署流程(3)- ceilometer
    openstack stein
  • 原文地址:https://www.cnblogs.com/yuzhaoblog/p/8948322.html
Copyright © 2011-2022 走看看