日志五个级别
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')
流程:格式器 =》 处理器 =》记录器