我有以下用于日志记录的处理程序配置:
"handlers": {
'system_file': {
'level': 'DEBUG',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': os.path.join(LOG_FOLDER, "all.log"),
'formatter': 'verbose',
'when': 'midnight',
'backupCount': '30',
}
}
现在基于这个配置,我的日志应该在每个午夜轮换一次,即它应该创建日期明智的日志。
在all.log文件中,所有内容都使用正确的时间戳正确记录,但是当轮换发生时,我看不到备份日志文件(前一天日志文件)中的所有日志。
例如:
假设今天是 2019-10-29,all.log 文件开始存储从 2019-10-29 00:00:00 到 2019-10-29 23:59:59 的所有日志。
第二天,即 2019 年 10 月 30 日(会发生轮换),当我去检查 all.log.2019-10-29 时,它包含从 2019 年 10 月 30 日 00:00:00 到 2019 年的日志- 10-30 01:00:00 和 all.log 文件从 00:00:00 开始存储 2019-10-30 的日志。所以基本上我所有的备份文件只包含第二天 00:00:00-01:00:00 的日志。
all.log 于 2019-10-30
[DEBUG 2019-10-30 00:00:07,463 cron.py:44] .....
[DEBUG 2019-10-30 00:00:11,692 cron.py:44] ....
[DEBUG 2019-10-30 00:00:13,679 cron.py:44] ....
.
.
[DEBUG 2019-10-30 00:00:55,692 cron.py:44] ....
[DEBUG 2019-10-30 00:59:58,679 cron.py:44] ....
SERVER SHUTS DOWN HERE AT 1AM AND STARTS STORING LOGS WHEN IT RESTARTS
[DEBUG 2019-10-30 07:00:02,692 cron.py:44] ....
[DEBUG 2019-10-30 07:00:04,679 cron.py:44] ....
.
.
*Till current time*
all.log.2019-10-29
[DEBUG 2019-10-30 00:00:07,463 cron.py:44] .....
[DEBUG 2019-10-30 00:00:11,692 cron.py:44] ....
[DEBUG 2019-10-30 00:00:13,679 cron.py:44] ....
.
.
.
[DEBUG 2019-10-30 00:00:52,463 cron.py:44] .....
[DEBUG 2019-10-30 00:00:55,692 cron.py:44] ....
[DEBUG 2019-10-30 00:59:58,679 cron.py:44] ....
all.log.2019-10-28
[DEBUG 2019-10-29 00:00:04,463 cron.py:44] .....
[DEBUG 2019-10-29 00:00:09,692 cron.py:44] ....
[DEBUG 2019-10-29 00:00:11,679 cron.py:44] ....
.
.
.
[DEBUG 2019-10-29 00:00:49,463 cron.py:44] .....
[DEBUG 2019-10-29 00:00:52,692 cron.py:44] ....
[DEBUG 2019-10-29 00:59:56,679 cron.py:44] ....
我正在使用按计划运行的服务器,服务器在凌晨 1 点关闭并在早上 7 点启动。这是我明白为什么会在凌晨 1 点发生这种奇怪行为的唯一原因,但我无法弄清楚为什么这会导致问题
任何帮助表示赞赏。
我正在使用 Django 1.9.7 和 Python 2.7.15