用于便捷记录日志且线程安全的模块
单文件日志
basicConfig()模块函数
功能:创建日志文件和写日志模式【有参】
使用方法:模块名称.basicConfig(filename="日志文件名称",format="(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)",datefmt="日期时间格式",level="日志等级")
格式如:logging.basicConfig(filename='log.log',format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=logging.WARNING)
内置等级写入函数【有参写入的内容】
critical()模块函数,critical等级写入日志
fatal()模块函数,fatal等级写入日志error()模块函数,error等级写入日志warning()模块函数,warning等级写入日志warn()模块函数,warn等级写入日志info()模块函数,info等级写入日志debug()模块函数,debug等级写入日志等级对照表
CRITICAL = 50FATAL = CRITICALERROR = 40WARNING = 30WARN = WARNINGINFO = 20DEBUG = 10#!/usr/bin/env python# -*- coding:utf8 -*-import logginglogging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',#(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容) datefmt='%Y-%m-%d %H:%M:%S %p',#日期时间格式 level=logging.WARNING)#日志等级,日志等级要求大写# 等级对照表# CRITICAL = 50# FATAL = CRITICAL# ERROR = 40# WARNING = 30# WARN = WARNING# INFO = 20# DEBUG = 10#注意:写入等级大于日志等级,才写入日志数据# 写入等级,写入日志logging.critical('sss')#写入日志,写入等级要求小写logging.fatal("333")#写入日志,写入等级要求小写logging.error("2222")#写入日志,写入等级要求小写logging.warning("5555")#写入日志,写入等级要求小写logging.warn("999")#写入日志,写入等级要求小写logging.info("598")#写入日志,写入等级要求小写logging.debug("5646")#写入日志,写入等级要求小写#log日志写入数据# 2016-09-06 15:10:38 PM - root - CRITICAL -index: sss# 2016-09-06 15:10:38 PM - root - CRITICAL -index: 333# 2016-09-06 15:10:38 PM - root - ERROR -index: 2222# 2016-09-06 15:10:38 PM - root - WARNING -index: 5555# 2016-09-06 15:10:38 PM - root - WARNING -index: 999#以上可以看出,写入等级大于日志等级,才写入日志数据
log()模块函数
功能:自定义写入等级,写入日志【有参】
使用方法:模块名称.log(写入等级数,"写入内容")
格式如:logging.log(40,'log')
#!/usr/bin/env python# -*- coding:utf8 -*-import logginglogging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',#(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容) datefmt='%Y-%m-%d %H:%M:%S %p',#日期时间格式 level=logging.WARNING)#日志等级,日志等级要求大写# 等级对照表# CRITICAL = 50# FATAL = CRITICAL# ERROR = 40# WARNING = 30# WARN = WARNING# INFO = 20# DEBUG = 10#注意:写入等级大于日志等级,才写入日志数据# 自定义写入等级,写入日志logging.log(40,'log')
多文件日志(推荐)
FileHandler()模块函数
功能:打开或创建日志文件【有参】
使用方法:模块名称.FileHandler("文件路径名称","打开模式",encoding='字符编码')
格式如:logging.FileHandler('l1_1.log', 'a', encoding='utf-8')
Formatter()模块函数
功能:创建日志写入格式【有参】
使用方法:模块名称.Formatter(fmt="%(日期和时间)s - %(日志等级名称)s - %(写入等级名称)s -%(产生日志程序名称)s: %(日志内容)s")
格式如:logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")
setFormatter()模块函数
功能:将日志写入格式应用到,打开文件【有参】
使用方法:打开日志文件变量.setFormatter(创建日志写入格式变量)
格式如:file_1_1.setFormatter(fmt)
Logger()模块函数
功能:创建日志等级,注意这个日志等级可以参照等级对照表来设置,要求大写【有参】
使用方法:模块名称.Logger("自定义日志等级名称",level=日志等级参数)
格式如:logging.Logger('s1', level=logging.ERROR)
addHandler()模块函数
功能:将日志等级追加到打开的文件【有参】
使用方法:创建日志等级变量.addHandler(打开日志文件变量)
格式如:logger1.addHandler(file_1_1)
close()模块函数
功能:关闭打开的日志文件【无参】
使用方法:打开日志文件变量.close()
格式如:file_1_1.close()
#!/usr/bin/env python# -*- coding:utf8 -*-import logging #导入模块# 定义文件1file_1_1 = logging.FileHandler('l1_1.log', 'a', encoding='utf-8')#以a模式打开或创建日志文件fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")#创建日志写入格式file_1_1.setFormatter(fmt)#将日志写入格式应用到,打开文件# 定义文件2file_1_2 = logging.FileHandler('l1_2.log', 'a', encoding='utf-8')#以a模式打开或创建日志文件fmt = logging.Formatter(fmt="%(message)s")#创建日志写入格式file_1_2.setFormatter(fmt)#将日志写入格式应用到,打开文件# 定义日志logger1 = logging.Logger('s1', level=logging.ERROR)#创建日志等级,注意这个日志等级可以参照等级对照表来设置,要求大写logger1.addHandler(file_1_1)#将日志等级追加到打开的文件logger1.addHandler(file_1_2)#将日志等级追加到打开的文件# 写日志logger1.critical('1111') #写入等级函数写入日志,注意这个写入等级函数参照等级对照表来设置,要求小写,也可以用log()模块函数来自定义等级,参照log()模块函数file_1_1.close()#关闭打开的日志文件file_1_2.close()#关闭打开的日志文件#这样就将一个日志数据同时写入两个日志文件,注意:要将日志数据写入几个日志文件,就按照上面操作打开几个日志文件