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())#获取详细信息,打印到文件中和控制台
posted on 2023-01-09 13:12  吃饱饱没烦恼  阅读(299)  评论(0编辑  收藏  举报