Python打印日志——logging库
1、主要实现步骤
(1)导入logging包、traceback包(可用于打印详细异常信息)
(2)设置日志记录器的级别:DEBUG或者其他的级别
(3)创建一个流式的日志处理对象
(4)创建一个能将日志内容打印到文件的日志处理对象
(5)设置(4)中对象的日志级别:DEBUG或其他级别
(6)设置日志格式器,将日志格式设置成期望的格式
(7)将日志格式器设置到流式对象中、日志内容打印对象中
(8)记录器设置一个处理器
(9)配置完成,可以调用日志使用打印,写入日志
import logging#导入日志库
import traceback#用于获取异常详细信息
# 声明一个文件路径字符串
logging_filename=r'C:\Users\86130\Desktop\info\Python\test.log'
# 方式二
if __name__=='__main__':
# 创建一个日志记录器
logger=logging.getLogger('applog')#applog:是日志记录器名称,可以随意取
# 设置日志记录器的等级DEBUG
logger.setLevel(logging.DEBUG)
# 创建一个将流式的日志处理器
steram_handler = logging.StreamHandler()
# 创建一个将日志内容打印到文件的日志处理器
file_handler = logging.FileHandler(filename=logging_filename, mode='a', encoding='utf-8')
# file_handler 设置日志等级为 ERROR ,没有给handler 设置日志级别,该handler 将使用logger设置或者默认的级别
file_handler.setLevel(logging.DEBUG)
# 创建一个日志格式器//'%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
# 设置处理器输出的日志格式
file_handler.setFormatter(formatter)
steram_handler.setFormatter(formatter)
# 记录器设置一个处理器
logger.addHandler(steram_handler)
logger.addHandler(file_handler)
# 写入日志
logger.debug('打印日志,debug级别')
logger.info('打印日志,info级别')
logger.warning('打印日志,warning级别')
logger.error('打印日志,error级别')
logger.critical('打印日志,critical级别')
try:
s=10/0
except Exception as e:
logger.error(e)#捕获异常信息,打印到文件中
logger.error(traceback.format_exc())#获取详细信息,打印到文件中和控制台