Python日志模块的封装

import sys
import logging

# 默认的配置
LOG_LEVEL = logging.INFO  ## 默认等级
LOG_FMT = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s'
LOG_DATEFMT = '%Y-%m-%d %H:%M:%S'  # 默认时间格式

LOG_FILENAME = 'Log.Log'  # 默认日志文件名称


class Logger(object):

    def __init__(self):
        # 1。获取一个logger对象
        self._logger = logging.getLogger()
        # 2,设置format对象
        self.formatter = logging.Formatter(fmt=LOG_FMT, datefmt=LOG_DATEFMT)
        # 3。设置日志输出
        # 了.了 设置文件日志模式
        self._logger.addHandler(self._get_file_handler(LOG_FILENAME))
        # 3了,2 设置终端日志模式
        self._logger.addHandler(self._get_console_handler())
        # 4。设置日志等级
        self._logger.setLevel(LOG_LEVEL)

    def _get_file_handler(self, filename):
        # 返回一个文件日志handler
        # 1.获取一个文件日志hand1er
        filehandler = logging.FileHandler(filename=filename, encoding="utf-8")
        # 2.设置日志格式
        filehandler.setFormatter(self.formatter)
        # 3,返回

        return filehandler

    def _get_console_handler(self):
        # 一个输出到终端日志handler

        # 获取一个输出到终端的handler
        console_handler = logging.StreamHandler(sys.stdout)

        # 2。设置日志格式
        console_handler.setFormatter(self.formatter)

        # 3。 返回hnandter
        return console_handler

    @property
    def logger(self):
        return self._logger


# 初始化并配一个Logger对象,达到单例的
# 使用时,直接导入logger就可以使用
logger = Logger().logger

if __name__ == '__main__':
    logger.debug("调试信息")
    logger.info("状态信息")
    logger.warning("警告信息")

image.png

支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论