我想在假设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分钟旋转一次日志文件。