TimedRotatingFileHandler 在分钟间隔内不工作
TimedRotatingFileHandler not working for minute intervals
我已经像这样配置了几个 TimedRotatingFileHandlers。
[loggers]
keys=root
[handlers]
keys=logfile, logfile_errors
[formatters]
keys=logfileformatter
[logger_root]
level=DEBUG
handlers=logfile, logfile_errors
[formatter_logfileformatter]
format=%(asctime)s %(name)-12s: %(levelname)s %(message)s
[handler_logfile]
class=handlers.TimedRotatingFileHandler
level=DEBUG
args=('./logs/log.out','S', 1, 10)
formatter=logfileformatter
[handler_logfile_errors]
class=handlers.TimedRotatingFileHandler
level=ERROR
args=('./logs/errors/log.out','M', 1, 10)
formatter=logfileformatter
但是,当我在不同的分钟内记录类似的内容时
logging.error('MY ERROR')
备份文件(每秒 1 个)是为日志文件处理程序创建的,而不是为 logfile_errors 处理程序创建的(我希望每分钟记录一个错误的备份文件)。我在配置处理程序时做错了什么吗?
我在你的配置中没有看到任何错误...它在我的机器上工作:-)
这是一个最小的工作示例,因此您可以在不做任何修改的情况下使用您的配置进行检查:
import logging
import logging.config
import time
logging.config.fileConfig('mytestlog.conf')
while True:
logging.error('other error message')
time.sleep(0.5);
运行 大约 3 分钟后生成的文件:
$ ls logs | sort
errors
log.out
log.out.2022-02-09_09-54-20
log.out.2022-02-09_09-54-21
log.out.2022-02-09_09-54-22
log.out.2022-02-09_09-54-23
log.out.2022-02-09_09-54-24
log.out.2022-02-09_09-54-25
log.out.2022-02-09_09-54-26
log.out.2022-02-09_09-54-27
log.out.2022-02-09_09-54-28
log.out.2022-02-09_09-54-29
$ ls logs/errors/ | sort
log.out
log.out.2022-02-09_09-51
log.out.2022-02-09_09-52
示例内容:
$ cat logs/log.out.2022-02-09_09-54-20
2022-02-09 09:54:20,109 root : ERROR other error message
2022-02-09 09:54:20,610 root : ERROR other error message
$ cat logs/errors/log.out.2022-02-09_09-52
2022-02-09 09:52:54,367 root : ERROR other error message
2022-02-09 09:52:54,869 root : ERROR other error message
2022-02-09 09:52:55,370 root : ERROR other error message
2022-02-09 09:52:55,872 root : ERROR other error message
2022-02-09 09:52:56,373 root : ERROR other error message
2022-02-09 09:52:56,875 root : ERROR other error message
2022-02-09 09:52:57,376 root : ERROR other error message
..
..
2022-02-09 09:53:52,536 root : ERROR other error message
2022-02-09 09:53:53,037 root : ERROR other error message
2022-02-09 09:53:53,540 root : ERROR other error message
我已经像这样配置了几个 TimedRotatingFileHandlers。
[loggers]
keys=root
[handlers]
keys=logfile, logfile_errors
[formatters]
keys=logfileformatter
[logger_root]
level=DEBUG
handlers=logfile, logfile_errors
[formatter_logfileformatter]
format=%(asctime)s %(name)-12s: %(levelname)s %(message)s
[handler_logfile]
class=handlers.TimedRotatingFileHandler
level=DEBUG
args=('./logs/log.out','S', 1, 10)
formatter=logfileformatter
[handler_logfile_errors]
class=handlers.TimedRotatingFileHandler
level=ERROR
args=('./logs/errors/log.out','M', 1, 10)
formatter=logfileformatter
但是,当我在不同的分钟内记录类似的内容时
logging.error('MY ERROR')
备份文件(每秒 1 个)是为日志文件处理程序创建的,而不是为 logfile_errors 处理程序创建的(我希望每分钟记录一个错误的备份文件)。我在配置处理程序时做错了什么吗?
我在你的配置中没有看到任何错误...它在我的机器上工作:-)
这是一个最小的工作示例,因此您可以在不做任何修改的情况下使用您的配置进行检查:
import logging
import logging.config
import time
logging.config.fileConfig('mytestlog.conf')
while True:
logging.error('other error message')
time.sleep(0.5);
运行 大约 3 分钟后生成的文件:
$ ls logs | sort
errors
log.out
log.out.2022-02-09_09-54-20
log.out.2022-02-09_09-54-21
log.out.2022-02-09_09-54-22
log.out.2022-02-09_09-54-23
log.out.2022-02-09_09-54-24
log.out.2022-02-09_09-54-25
log.out.2022-02-09_09-54-26
log.out.2022-02-09_09-54-27
log.out.2022-02-09_09-54-28
log.out.2022-02-09_09-54-29
$ ls logs/errors/ | sort
log.out
log.out.2022-02-09_09-51
log.out.2022-02-09_09-52
示例内容:
$ cat logs/log.out.2022-02-09_09-54-20
2022-02-09 09:54:20,109 root : ERROR other error message
2022-02-09 09:54:20,610 root : ERROR other error message
$ cat logs/errors/log.out.2022-02-09_09-52
2022-02-09 09:52:54,367 root : ERROR other error message
2022-02-09 09:52:54,869 root : ERROR other error message
2022-02-09 09:52:55,370 root : ERROR other error message
2022-02-09 09:52:55,872 root : ERROR other error message
2022-02-09 09:52:56,373 root : ERROR other error message
2022-02-09 09:52:56,875 root : ERROR other error message
2022-02-09 09:52:57,376 root : ERROR other error message
..
..
2022-02-09 09:53:52,536 root : ERROR other error message
2022-02-09 09:53:53,037 root : ERROR other error message
2022-02-09 09:53:53,540 root : ERROR other error message