在日志文件名中包含日期并创建一定大小的日志文件,同时使用 'logging.config.dictConfig()' 将最后 3 个日志文件保存在 python 中



我正在使用config设置python记录器。我希望日志文件包含日期(可能还有时间(。我还希望该日期,每个日志文件仅具有特定大小,并且仅保留 3 个这样的旧日志文件。

例如,我想获取以下形式的日志文件:

mylog-2018-09-11.log
mylog-2018-09-11.log.1
mylog-2018-09-11.log.2
mylog-2018-09-11.log.3

我尝试使用以下形式的配置旋转文件处理程序,如下所述:

config = {
#...
'handlers': {
'file': {
'class': 'logging.handlers.RotatingFileHandler',
'filename': 'mplog.log',
'mode': 'w',
'formatter': 'detailed',
'maxBytes': 10000,
'backupCount': 3
},
},
#...
}
logging.config.dictConfig(config)

它生成日志文件如下:

mylog.log
mylog.log.1
mylog.log.2
mylog.log.3

但是我无法理解,如何在日志文件名中获取日期。是否可以使用配置和一些处理程序(例如RotatingFileHandlerTimeRotatingFileHandler(来做到这一点?或者说我可以以某种方式将日志文件名设置为包含调用后的日期dictConfig()

您的示例显示了一个根据大小而不是日期旋转文件的RotatingFileHandler。您需要使用此处所述的TimedRotatingFileHandler。您可以按照与RotatingFileHandler相同的方式配置它。

更新:如果你想按日期大小进行限制,你将需要使用一个处理程序子类,它完全符合你的要求。

最新更新