Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TimedRotatingFileHandler不会在午夜旋转,直到有新的内容写入日志文件。如何解决这个问题?_Python_Logging - Fatal编程技术网

Python TimedRotatingFileHandler不会在午夜旋转,直到有新的内容写入日志文件。如何解决这个问题?

Python TimedRotatingFileHandler不会在午夜旋转,直到有新的内容写入日志文件。如何解决这个问题?,python,logging,Python,Logging,在全天候运行的flask服务器中,我设置了TimedRotatingFileHandler,以便在每天午夜旋转日志文件。但是,日志旋转会被延迟,直到午夜后有新的内容写入日志文件。 如何解决这个问题 这是我用于日志旋转的代码 config = ConfigParser.ConfigParser() config.read("config.cnf") #Logging log_path = config.get('logging', 'log_path') from logging.handle

在全天候运行的flask服务器中,我设置了TimedRotatingFileHandler,以便在每天午夜旋转日志文件。但是,日志旋转会被延迟,直到午夜后有新的内容写入日志文件。 如何解决这个问题

这是我用于日志旋转的代码

config = ConfigParser.ConfigParser()
config.read("config.cnf")

#Logging
log_path = config.get('logging', 'log_path')

from logging.handlers import TimedRotatingFileHandler 

log = logging.getLogger(__name__)
log.setLevel(logging.DEBUG)
# add a file handler
fh = logging.handlers.TimedRotatingFileHandler(log_path,when='midnight',interval=1,backupCount=0)
fh.setLevel(logging.DEBUG)
# create a formatter and set the formatter for the handler.
frmt = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
fh.setFormatter(frmt)
# add the Handler to the logger
log.addHandler(fh)

为什么这种行为是一个问题?@barny我已经设置了一个cron作业,在午夜后的某个时间读取前一天的日志文件以进行一些处理。由于日志写入延迟,昨天将不会有任何日志文件进行处理。您是说日志处理程序在关闭该文件之前不会正确命名该文件吗?您遇到了什么错误?@barny日志处理程序没有正确命名文件。只是文件旋转操作被延迟,直到有东西写入基本日志文件。因为我还有一个cron作业,它假定昨天的日志文件肯定会在午夜生成,所以即使午夜后处理程序没有新的消息出现,是否有办法旋转日志文件。强制flask服务器中的某个应用程序在00:01写入日志?你的日志文件阅读器可以在午夜过后使用昨天的日志文件,因为不再有日志信息写入其中,不是吗?