python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志级别等级:critical > error > warning > info > debug import logging # 初始化日志配置 logging.basicConfig( # 日志级别,logging.DEBUG,logging.ERROR level = logging.INFO, # 日志格式 # 时间、代码所在文件名、代码行号、日志级别名字、日志信息 format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', # 打印日志的时间 datefmt = '%a, %Y-%m-%d %H:%M:%S', # 日志文件存放的目录(目录必须存在)及日志文件名 filename = 'e:/BddDataDriveRreport.log', # 打开日志文件的方式 filemode = 'w' ) logging.debug('test debug')
logging.info('test info') logging.warning('test warning') logging.error('test error')
logging.critical('test critical') 文件输出结果:
Fri, 2019-04-19 11:07:23 py20190419_logging.txt[line:36] INFO test info
Fri, 2019-04-19 11:07:23 py20190419_logging.txt[line:38] WARNING test warning
Fri, 2019-04-19 11:07:23 py20190419_logging.txt[line:40] ERROR test error
Fri, 2019-04-19 11:07:23 py20190419_logging.txt[line:41] CRITICAL test critical
2、一个简单的程序可调用的 logger生成方法:
#参考其它文章
import logging,os rdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #获取上级目录的绝对路径
log_dir = rdir + '/log/record.log'
def get_logger():
fh = logging.FileHandler(log_dir,encoding='utf-8') #创建一个文件流并设置编码utf8
logger = logging.getLogger() #获得一个logger对象,默认是root
logger.setLevel(logging.DEBUG) #设置最低等级debug
fm = logging.Formatter("%(asctime)s --- %(message)s") #设置日志格式
logger.addHandler(fh) #把文件流添加进来,流向写入到文件
fh.setFormatter(fm) #把文件流添加写入格式
return logger