logging 模块化组件的使用
1. 使用流程
- 创建一个logger对象
- 创建处理器对象
- 设置处理器对象的最低输出等级
- 创建并设置日志输出格式
- 将 日志输出格式 与 处理器对象 进行绑定 (即设置处理器对象的日志输出格式)
- 将 logger对象 与 处理对象进行绑定 (即为logger对象添加处理器)
2. 实例
import logging
# 1. 创建一个logger 对象
# logger = logging.getLogger('mylogger')
logger = logging.Logger('mylogger')
# 2. 将日志输出到什么地方去, # 处理器对象
stream_handler = logging.StreamHandler() # 控制台
# 它能够输出的最低等级就是warning, 即使设置了DEBUG 和 INFO 也不会输出这两个日志等级, # logger = logging.getLogger() 创建的logger对象, 是这种现象, # logger = logging.Logger() 创建的就不是,你设置的等级是多少,就能显示多少
# stream_handler.setLevel(logging.DEBUG) # 为输出到控制台的这个处理对象单独设置输出的等级
stream_handler.setLevel(logging.DEBUG) # 设置最低输出等级为DEBUG
# file_handler = logging.FileHandler('test_logger.txt')
# file_handler.setLevel(logging.CRITICAL)
# 3. 设置日志输出的格式,
formatter = logging.Formatter('时间: %(asctime)s, 文件:%(filename)s, 日志等级:%(levelname)s, 函数名: %(funcName)s')
# 4. 然后将 日志输出格式formatter 与 处理对象绑定
stream_handler.setFormatter(formatter)
# file_handler.setFormatter(formatter)
# 5. 将日志对象logger 和处理对象进行绑定 # 将处理器对象 添加到 日志对象logger对象中去
logger.addHandler(stream_handler)
# logger.addHandler(file_handler)
if __name__ == '__main__':
a = '调试debug'
logger.debug(a)
b = 'info信息'
logger.info(b)
# c = 'warning警告' # 默认能够输出信息的最低等级
# logger.warning(c)
# d = 'error 出错'
# logger.error(d)
# e = 'critical危险信息'
# logger.critical(e)