# 日志回滚
# 日志记录级别:由下往上越来越高
# 级别 数值
# 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)
网友评论