我想在Django中实现日志记录,
1]日志文件大小超过某个阈值后,将生成一个新的日志文件并将其写入。
2]此新文件的名称应可自定义。例如,日志文件名可以是current_date_and_time-app_name.log
3] [可选]压缩并存储了已达到大小限制的文件。
请注意,在创建名称为创建时间的新日志文件时,将永远不会重写旧的日志文件。 我该怎么做?
我尝试使用RotatingFileHandler类,但是它重写了旧日志,并且也没有提供更改日志名称的灵活性。这是我编写的代码:
BASE_DIR_APP = os.path.dirname(os.path.abspath(__file__))
DIR_LOGS = os.path.join(BASE_DIR_APP, 'logs')
current_time = datetime.now().strftime("%b-%d-%Y_%H-%M-%S--%f")
U_LOGFILE_SIZE = 1 * 1024
U_LOGFILE_COUNT = 2
logging.config.dictConfig({
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'console': {
'format': '%(name)-12s %(levelname)-8s %(message)s'
},
'file': {
'format': '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'console'
},
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'file',
'maxBytes': U_LOGFILE_SIZE,
'backupCount': U_LOGFILE_COUNT,
'filename': os.path.join(DIR_LOGS, current_time + '.log')
}
},
'loggers': {
'': {
'level': 'DEBUG',
'handlers': ['console', 'file']
}
}
})