我想自动化一些测试并将每个测试的输出记录到不同的文件中,但似乎所有测试输出都附加到第一个日志文件中,而不是单独的文件。我可以知道我该如何解决这个问题?Python日志记录无法写入多个日志文件
我所做的是: 首先,定义包含所有测试配置文件的runthis.cfg。 二,执行run.py.它进口A级,for循环和写的一些日志数据为每个循环
在runthis.cfg
2
prob1.cfg
prob2.cfg
在run.py
from fa import A
def run_it(cfg_data):
cfg = cfg_data.split('\n')
runCount = int(cfg[0])
for i in range(1, runCount+1):
print "\n\nRunning " + cfg[i] + "..."
cA.readProblemInstance(cfg[i])
cA = A()
if __name__ == '__main__':
run_config_file = open('runthis.cfg', 'r')
cfg_data = ''.join(run_config_file.readlines())
run_config_file.close()
run_it(cfg_data)
在fa.py
from datetime import datetime
import time
import logging
class A():
def activateLogFile(self, f):
logging.basicConfig(filename=f, level=logging.INFO)
def readProblemInstance(self, fn):
fn = fn.replace('.', '_')
fn = fn + '_' + datetime.now().strftime('%Y_%m_%d_%H_%M_%S_%f')
self.activateLogFile(fn)
logging.info("%s" %fn)
输出是,在prob1_cfg_2014_04_07_12_39_38_293000,
INFO:root:prob1_cfg_2014_04_07_12_39_38_293000
INFO:root:prob2_cfg_2014_04_07_12_39_38_294000
prob2_cfg_2014_04_07_12_39_38_294000不存在!
@metatoaster提到的添加towhat,我在你的回复中添加了几行。它现在可以正常工作,分别登录不同的文件。不添加此行,新日志将写入旧文件和新创建的日志文件。 – twfx
我的印象是,OP希望能够同时登录到两个文件。在这种情况下,不需要删除以前的处理程序。 – ebarr
好吧,无论如何,我得到了解决这个问题的线索! – twfx