python3 log封装

#!/usr/bin/python

#  -*- coding: UTF-8 -*-

import logging

# logging 学习网页:https://www.cnblogs.com/nancyzhu/p/8551506.html

class log():

    def __init__(self, level="DEBUG"):

        # 1、创建日志器

        # 创建日志对象

        # logSetting是name,可有可无,若无,则默认=root

        self.logger=logging.getLogger("logSetting")  

        self.logger.setLevel(level)  # 默认输出等级为warning,设置成debug才会全部输出;DEBUG一定要大写

    def console_handle(self,level="DEBUG"):

        # 2、创建控制台处理器

        console_handler=logging.StreamHandler()

        console_handler.setLevel(level)

        return console_handler

    def file_handle(self,level="INFO"):

        # 2、创建文本处理器

        # 在当前路径下生成log.txt,并把记录追加进去保存

        file_handler=logging.FileHandler("./log.txt", mode="a", encoding="utf-8")

        file_handler.setFormatter(self.get_formatter())

        file_handler.setLevel(level)

        return file_handler

    def get_formatter(self):

        fmtInit="%(asctime)s-%(name)s: %(message)s"

        fileFmt=logging.Formatter(fmt=fmtInit)

        return fileFmt

    # 3、定义控制台日志输出等级

    # file_handler.setLevel(level="INFO", format=fileFmt)  # INFO一定要大写,这里与logger的等级对比,谁比较高,则按谁的等级输出

    def get_log(self):

        # 4、日志器添加控制台处理器

        self.logger.addHandler(self.console_handle())

        # 4、日志器添加文件处理器

        self.logger.addHandler(self.file_handle())

        return self.logger


调用:

# 实例化log

log = log()  

outLog = log.get_log()

outLog.info("开始读取Excel数据")     # 会将"开始读取Excel数据"输出到控制台,和保存到log.txt 去

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容