Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 旋转FileHandler写入其他文件夹以进行备份_Python_Logging - Fatal编程技术网

Python 旋转FileHandler写入其他文件夹以进行备份

Python 旋转FileHandler写入其他文件夹以进行备份,python,logging,Python,Logging,我正在使用Python logger,创建一个日志文件(/opt/feedlog.log) 我特别尝试创建一个备份文件夹来归档旧的日志文件 /opt/archive 将包含 /opt/archive/feedlog.log.1 /opt/archive/feedlog.log.2 /opt/archive/feedlog.log.3 下面是我的示例代码: import logging from logging.handlers import RotatingFileHandler logge

我正在使用Python logger,创建一个日志文件(
/opt/feedlog.log

我特别尝试创建一个备份文件夹来归档旧的日志文件

/opt/archive

将包含

/opt/archive/feedlog.log.1
/opt/archive/feedlog.log.2
/opt/archive/feedlog.log.3
下面是我的示例代码:

import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger('feed_logger')
logger.setLevel(logging.DEBUG)
handler = RotatingFileHandler('/opt/feedlog.log', maxBytes=1000, backupCount=10)
logger.addHandler(handler)

for _ in range(10000):
        logger.warning('Hello world !!!')
是否有任何方法可以强制
旋转文件处理程序
在不同的文件夹
存档
而不是原始文件夹中创建备份文件

任何输入都会有帮助


谢谢

最简单的方法是创建一个函数来执行此操作,并将其作为
rotator
参数传递给
RotatingFileHandler

另一种方法是创建自己版本的
RotatingFileHandler
。这应该比听起来容易。签出所有您需要的是创建您自己的继承自此类的类,并重写
rotate

从logging.handlers导入RotatingFileHandler
类MyRotatingFileHandler(RotatingFileHandler):
#从python源代码复制
def旋转(自身、源、目标):#在此处更改目标
如果不可调用(自旋转器):
#问题18940:如果延迟为真,则可能未创建文件。
如果os.path.存在(源):
重命名操作系统(源、目标)
其他:
自旋转器(源、目标)