美文网首页
logging封装

logging封装

作者: lk_erzanml | 来源:发表于2021-02-05 08:39 被阅读0次
# 日志回滚


# 日志记录级别:由下往上越来越高
# 级别    数值
# CRITICAL  50
# ERROR     40
# WARNING   30,默认
# INFO      20
# DEBUG     10
# NOTSET    0

# import logging
# from logging.handlers import RotatingFileHandler
#
# logger = logging.getLogger(__name__)
# logger.setLevel(level = logging.INFO)
# #定义一个RotatingFileHandler,最多备份3个日志文件,每个日志文件最大1K
# rHandler = RotatingFileHandler("log.txt",maxBytes = 1*1024,backupCount = 3)#最大1k,备份三个
# rHandler.setLevel(logging.INFO)
# formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# rHandler.setFormatter(formatter)
#
# console = logging.StreamHandler()
# console.setLevel(logging.INFO)
# console.setFormatter(formatter)
#
# logger.addHandler(rHandler)
# logger.addHandler(console)
# logger.info("Start print log")
# logger.debug("Do something")
# logger.warning("Something maybe fail.")
# logger.info("Finish")



# -*- coding: utf-8 -*-
"""
Date : 
Author : Becld
Desc : 
"""
import logging
import logging.handlers
import os
import time


class RotateLog:
    def __init__(self):
        self.logger = logging.getLogger()
        # 创建文件目录
        logs_dir = "RotateLogDir"
        if os.path.exists(logs_dir) and os.path.isdir(logs_dir):
            pass
        else:
            os.mkdir(logs_dir)
        # 修改log保存位置
        timestamp = time.strftime("%Y-%m-%d", time.localtime())
        logfilename = '%s.txt' % timestamp
        logfilepath = os.path.join(logs_dir, logfilename)
        rotatingFileHandler = logging.handlers.RotatingFileHandler(filename=logfilepath,
                                                                   maxBytes=1024 * 1024 * 50,
                                                                   backupCount=5)
        # 设置输出格式
        formatter = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
        rotatingFileHandler.setFormatter(formatter)
        # 控制台句柄
        console = logging.StreamHandler()
        console.setLevel(logging.INFO)
        console.setFormatter(formatter)
        # 添加内容到日志句柄中
        self.logger.addHandler(rotatingFileHandler)
        self.logger.addHandler(console)
        self.logger.setLevel(logging.INFO)

    def info(self, message):
        self.logger.info(message)

    def debug(self, message):
        self.logger.debug(message)

    def warning(self, message):
        self.logger.warning(message)

    def error(self, message):
        self.logger.error(message)

    def critical(self, message):
        return self.logger.critical(message)

相关文章

网友评论

      本文标题:logging封装

      本文链接:https://www.haomeiwen.com/subject/hpazaktx.html