重命名最后的日志文件

问题描述 投票:2回答:1

在程序开始时,日志文件被命名为。

filename='D://my_code_3/logging/'+timestr+'_XFR.log'

###set up logging to file
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',datefmt='%m-%d %H:%M',filename='D://my_code_3/logging/'+timestr+'_XFR.log', filemode='w')

在程序执行的过程中,在这个日志文件中会有各种记录。

在程序结束时,需要对日志文件进行重命名,加入一个唯一的str变量(str9)捕获的程序(在程序执行之初,即日志文件刚刚创建时,最初是不可用的)。 为了在程序结束时重命名日志文件,首先必须关闭old_name日志文件。 我在下面的代码中包含了这些指令。

fh = open('D://my_code_3/logging/'+timestr+'_XFR.log', "r")
print fh.read()
fh.close()

然后在最后,我要求重命名,如下图。

old_file ='D://my_code_3/logging/'+timestr+'_XFR.log'
new_file = 'D://my_code_3/logging/'+timestr+''+str9+'_XFR.log'
os.rename(old_file, new_file)

我得到以下错误信息:

`

回溯(最近一次调用)。 文件 "qar_xfr_2017_10_05_WIP.py",第283行,在os.rename(old_file, new_file)中WindowsError: 错误32] 进程无法访问该文件,因为它正被另一个进程使用`。

我认为 old_file 仍然在被写入,因此出现了文件已打开的消息。 如果是这样的话, 我如何能在尝试重命名 old_file 之前提供一个时间延迟?

先谢谢你的纠正建议一个解决方案。

python-2.7 logging file-rename
1个回答
0
投票

所有处理程序都需要通过调用

logging.shutdown()

之后,你可以重新命名日志文件。

© www.soinside.com 2019 - 2024. All rights reserved.