logging模块用法

logging模块是python内置的一个日志模块,用于更加方便和灵活的记录日志文件.

有两种方式使用logging模块来记录日志:

1.基础配置

import logging
logging.basicConfig(level = logging.INFO,     #只打印大于此等级的日志
                    format = '%(asctime)s %(levelname)s %(filename)s %(message)s %(name)s',
                    datefmt = '%Y-%m-%d %H:%M:%S',    #分别是时间,日志等级,文件名,信息,logger名  datefmt为时间格式
                    filename = 'file.log',    #无此参数就打印到屏幕
                    filemode = 'a')        
logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')

使用基础配置的方式配置相对简单,能完成一些简单的需求.

但是缺点有:

  1. 只能完成一些简单的需求,
  2. 不支持同时向文件中写入和向屏幕输出
  3. 根据操作系统的编码可能会出现乱码问题

2.创建logger对象

import logging
logger = logging.getLogger()    #得到一个logger对象
logger.setLevel(logging.DEBUG)    #为logger设置等级
file_handler = logging.FileHandler('file',encoding='utf-8')  #文件操作符
file_handler.setLevel(logging.INFO)    #为文件操作符设置等级,只写入此等级以上的日志
stream_handler = logging.StreamHandler()    #屏幕操作符
formatter = logging.Formatter('%(asctime)s %(levelname)s %(filename)s %(message)s %(name)s',    
                                datefmt=('%Y-%m-%d %H:%M:%S'))    #意义同基础配置的format
file_handler.setFormatter(formatter)    #为文件操作符添加格式formatter
stream_handler.setFormatter(formatter)    #为屏幕操作符添加格式formatter
logger.addHandler(file_handler)    #为logger对象添加文件操作符file_handler
logger.addHandler(stream_handler)    #为logger对象添加屏幕操作符stream_handler

logger.debug('debug')
logger.info('info')
logger.warning('warning')
logger.error('error')
logger.critical('critical')

logger对象的配置相对复杂,需要将操作符和格式绑在一起,再把logger对象和操作符绑在一起.

但是这种方式很灵活,能支持很多需求.

猜你喜欢

转载自blog.csdn.net/tszty1997/article/details/84668437