Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 ConcurrentLogHandler:与Tornado HttpServer一起使用时强制翻转_Python_Logging_Tornado - Fatal编程技术网

Python ConcurrentLogHandler:与Tornado HttpServer一起使用时强制翻转

Python ConcurrentLogHandler:与Tornado HttpServer一起使用时强制翻转,python,logging,tornado,Python,Logging,Tornado,我正在使用ConcurrentLogHandler将Python应用程序日志消息记录到一个文件中。Tornado的HTTPServer在生产中用作服务器,在某些情况下(用户表单提交),我想强制文件的滚动。 我遇到的问题是,在运行logger.handlers[0].doRollover()时,不会发生回滚,而且我也没有看到错误 my apps的许多模块从以下模块导入“logger”对象以写入日志: import logging import logging.handlers from clogh

我正在使用ConcurrentLogHandler将Python应用程序日志消息记录到一个文件中。Tornado的HTTPServer在生产中用作服务器,在某些情况下(用户表单提交),我想强制文件的滚动。 我遇到的问题是,在运行logger.handlers[0].doRollover()时,不会发生回滚,而且我也没有看到错误

my apps的许多模块从以下模块导入“logger”对象以写入日志:

import logging
import logging.handlers
from cloghandler import ConcurrentRotatingFileHandler
from my_app import app

logger = logging.getLogger('my_app')
hdlr = ConcurrentRotatingFileHandler(app.config['LOG_PATH'], maxBytes=5e+8, backupCount=10)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
在使用ConcurrentLogHandler之前,我使用了RotatingFileHandler,并执行了一个logger.handlers[0].doRollover()将导致在os.rename堆栈上触发“文件忙”错误

有没有一种方法可以强制使用此设置进行翻滚,或者我应该进行哪些更改以使其成为可能?我使用Centos作为服务器,所以文件系统是UNIX/Linux。我可以在应用程序运行时始终在日志文件上看到[filename]。锁定文件


谢谢,

ConcurrentLogHandler可以由logger.handlers[0].doRollover()进行滚动。我遇到的问题是,我以前使用了RotatingLogHandler,并且在日志目录中保留了一个.lock文件,防止了它被翻滚。删除锁文件并保留ConcurrentLogHandler作为选择的处理程序(而不是旋转LogHandler)可以解决问题。

ConcurrentLogHandler可以由logger.handlers[0].doRollover()进行滚动。我遇到的问题是,我以前使用了RotatingLogHandler,并且在日志目录中保留了一个.lock文件,防止了它被翻滚。移除锁文件并保留ConcurrentLogHandler作为选择的处理程序(而不是旋转LogHandler)可以解决问题