我想自動化一些測試並將每個測試的輸出記錄到不同的文件中,但似乎所有測試輸出都附加到第一個日誌文件中,而不是單獨的文件。我可以知道我該如何解決這個問題?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