python logging 最佳实践

来源:互联网 发布:如何注册域名 编辑:程序博客网 时间:2024/06/08 06:16
# 创建一个logger, 这里的级别DEBUG是总开关,控制了下面file 和console handler的级别logger = logging.getLogger('')logger.setLevel(logging.DEBUG)# 创建一个handler,用于写入日志文件, 并定义输出格式fh = logging.FileHandler(os.path.basename(__file__).replace(".py", ".log"))fh.setLevel(logging.DEBUG)ffmt = logging.Formatter('%(asctime)s %(process)d %(thread)d %(levelname)s @ %(filename)s-%(lineno)d: %(message)s')fh.setFormatter(ffmt)# 再创建一个handler,用于输出到控制台,仅输出错误信息ch = logging.StreamHandler()ch.setLevel(logging.WARNING)cfmt = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')ch.setFormatter(cfmt)# 给logger添加handlerlogger.addHandler(ch)logger.addHandler(fh)

prod_log = logging.getLogger('prod')
prod_log.setLevel(logging.ERROR)

#记录日志, 日志文件记录了所有级别,控制台只记录warning及以上等级
logger.debug('debug')
logger.info('info')
logger.warning('warning')
logger.error('error')
logger.critical('critical')


#记录日志,由于prod_log.setLevel(logging.ERROR) 语句,file 和 console 都只记录ERROR 以上级别的消息
prod_log.debug('prod debug')
prod_log.info('prod info')
prod_log.warning('prod warning')
prod_log.error('prod error')
prod_log.critical('prod critical')


0 0
原创粉丝点击