我正在使用旋转记录器,每小时创建一个日志文件
import logging
import logging.config
import logging.handlers
tmppath = path.abspath(path.join(path.dirname(__file__), '..', '..', 'logging.ini'))
logging.config.fileConfig(tmppath)
logger = logging.getLogger("main.main")
logging.ini包含这些规则,这些规则要求使用文件名 /var/log/myprogram/main.log 并每小时启动一个新文件。
[loggers]
keys=root,main
[handlers]
keys=fileHandler, consoleHandler
....
[handler_fileHandler]
class=logging.handlers.TimedRotatingFileHandler
formatter=myFormatter
args=('/var/log/myprogram/main.log', 'm', 60, 336, )
[formatter_myFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
此记录器运行良好,每小时可创建一个文件。
问题是,当重新启动程序时,当前的日志文件 “ /var/log/myprogram/main.log”已被覆盖,因此我浪费了一些日志时间。
我可以尝试在激活日志记录之前找到日志文件,然后尝试“手动”重命名,但这似乎很hacky。
有没有一种方法可以配置日志记录,使其从不覆盖日志文件,而是始终追加?
对于我的用例,如果重新启动后日志记录时间超过一个小时,则可以接受。