函数式简单配置
import logging logging.debug('debug message') #低级别的,用于排错信息 logging.info('info message') #正常信息 logging.warning('warning message') #警告信息 logging.error('error message') #错误信息 logging.critical('critical message') #高级别的,用于严重错误信息
默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),默认的日志格式为日志级别:Logger名称:用户输出消息。
2种日志配置方式,basicconfig配置和log对象配置
# basicconfig 简单 但能做的事情相对少,存在中文乱码问题,不能同时往文件和屏幕上输出
# log对象配置,稍微有点复杂 能做的事情相对多
basicconfig配置
import logging
file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)#创建日志
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', #格式设置
datefmt='%Y-%m-%d %H:%M:%S %p', #时间格式设置
handlers=[file_handler], #设置输入到创建文件中,如果没有此行设置,默认输出到控制台
level=logging.ERROR #日志等级设置,如果没有,默认系统设置
)
log对象配置
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') fh.setFormatter(formatter) #将相应操作符关联格式 ch.setFormatter(formatter) logger.addHandler(fh) #将文件操作符和log对象关联,logger对象可以添加多个fh和ch对象 logger.addHandler(ch)