Logging 模块
import logging logger = logging.getLogger() # 创建一个handler,用于写入日志文件 fh = logging.FileHandler('test.log',encoding='utf-8') # 再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger.setLevel(logging.DEBUG) fh.setFormatter(formatter) ch.setFormatter(formatter) logger.addHandler(fh) #logger对象可以添加多个fh和ch对象 logger.addHandler(ch) logger.debug('logger debug message') logger.info('logger info message============') logger.warning('logger warning message') logger.error('logger error message') logger.critical('logger critical message')
输出如下:
2018-11-22 09:27:22,336 - root - DEBUG - logger debug message 2018-11-22 09:27:22,337 - root - INFO - logger info message============ 2018-11-22 09:27:22,337 - root - WARNING - logger warning message 2018-11-22 09:27:22,337 - root - ERROR - logger error message 2018-11-22 09:27:22,337 - root - CRITICAL - logger critical message
注意
logger.setLevel(logging.DEBUG) 是设置记录的级别, 可以单独设置 fh , ch 的级别。
级别上critical>error>warning>info>debug 设置了低级别的level后, 高于它的级别的信息都能显示。低于它的级别信息被过滤掉了。