Python日志打印,循环保存10个日志文件。
# 日志打印, logger.py
import logging
import os.path
from logging import StreamHandler
from logging.handlers import RotatingFileHandler
class Logger(object):
def __init__(self, dirname, basename):
"""
:param dirname: 日志路径
:param basename: 日志名字
"""
self.logger = logging.getLogger(basename)
del self.logger.handlers[:]
dirname = os.path.abspath(dirname)
filename = os.path.join(dirname,
basename if basename.endswith(".log")
else basename + ".log")
max_bytes = 10 * 1024 * 1024
backup_count = 10
if not os.path.exists(dirname):
os.makedirs(dirname, exist_ok=True)
formatter = logging.Formatter(
'%(asctime)s - %(filename)s'
'[line:%(lineno)d] - %(levelname)s'
': %(message)s'
)
stream_handler = StreamHandler()
stream_handler.setFormatter(formatter)
stream_handler.setLevel(logging.DEBUG)
log_file_handler = RotatingFileHandler(filename=filename,
maxBytes=max_bytes,
backupCount=backup_count)
log_file_handler.suffix = '%Y%m%d.log' if basename.endswith(".log") \
else '%Y%m%d.' + os.path.splitext(basename)[-1]
log_file_handler.setFormatter(formatter)
log_file_handler.setLevel(logging.DEBUG)
self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(log_file_handler)
self.logger.addHandler(stream_handler)
def get_logger(self):
return self.logger
# 日志打印,cfg.py
from logger import Logger
# -----日志配置-----
LOG_FORMAT = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
LOG_FILE = 'log'
log = Logger('./base_logs/', LOG_FILE).get_logger()
打印日志的代码:
from cfg import log
log.info(f"{user_no}_已完成!")
有用请点个赞!!
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/weixin_45092662。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。