Python-每隔10分钟创建一个新的日志文件



我想在假设10分钟的特定间隔后建立一个新的日志文件,所有日志都应该放在新的日志中。

我有这样定义的logge.py-

import logging
import os

class Logger():
loggers = {}
logger = None
def getlogger(self,name):
file_formatter = logging.Formatter('%(asctime)s %(levelname)s [%(module)s : %(funcName)s] : %('
'message)s')
console_formatter = logging.Formatter('%(levelname)s -- %(message)s')
print(os.getcwd())
file_name = "src/logs/"+name+".log"
file_handler = logging.FileHandler(file_name)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(file_formatter)
logger = logging.getLogger(name)
logger.addHandler(file_handler)
logger.setLevel(logging.DEBUG)
logger.propagate = False
self.loggers[name] = logger
return logger

def getCommonLogger(self):
if self.loggers.get("dashboard_asset_logs"):
return self.loggers.get("dashboard_asset_logs")
else:
self.logger = self.getlogger("dashboard_asset_logs")
return self.logger

我有这样定义的app.py

from src.main import logger

logger_obj = logger.Logger()
logger = logger_obj.getCommonLogger()

def log_trial():
logger.info("----------Log - start ---------------------")

if __name__ == '__main__':
log_trial()

我正在运行这样的代码python -m src.main.app

有人能告诉我们,日志如何每隔10分钟就转到dashboard_asset_logs之类的文件,然后再转到另一个文件吗?

您要查找的是TimedRotatingFileHandler,例如

import logging.handlers
handler = logging.handlers.TimedRotatingFileHandler(
filename=file_name,
when="M",
interval=10,
)

该处理程序将每10分钟旋转一次日志文件。