2017-02-21 70 views
1

我的python代碼使用日誌框架生成日誌文件,並且所有INFO消息都被捕獲到日誌文件中。我將我的程序與ROBOT框架集成,現在不會生成日誌文件。相反INFO消息打印在log.html。我知道這是因爲機器人現有的記錄器正在被調用,因此INFO指向log.html。我不希望行爲發生變化,我仍然希望用戶定義的日誌文件只與INFO級別的消息分開生成。未打印機器人框架信息消息

我該如何做到這一點?

+2

您能否介紹一下您如何創建和使用您的記錄器等?你使用的是默認記錄器嗎? –

+0

請包括這是使用機器人記錄器界面還是使用Listener API? –

回答

0

現在這個問題已經修復,這是一個很小的問題。但我仍然深入分析,當我清楚確切的原因時會更新。 這是我使用的模塊, DEF call_logger(logger_name,日誌文件): 水平= logging.INFO 升= logging.getLogger(logger_name) 如果不是getattr的(1, 'handler_set',無): 格式化= log.Formatter('%(asctime)s:%(message)s') fileHandler = logging.FileHandler(logFile,mode ='a') fileHandler.setFormatter(formatter) streamHandler = logging.StreamHandler() streamHandler .setFormatter(formatter) l.setLevel(level) l.addHandler(fileHandler) l.addHandler(streamHandler) l.handler_set = True

當我將參數「logFile」更改爲不同的名稱「log_file」時,它就起作用了。 看起來像「logFile」是一個內置的機器人關鍵字。

0

Python代碼 - >日誌庫 - > 「日誌文件」

RobotFramework - > Python代碼 - >日誌庫 - >默認 「log.html」

當您運行使用Python代碼它將允許您設置日誌文件名稱。 但是,當您使用robotframework運行時,該文件默認設置爲log.html(因爲機器人在內部使用您正在使用的內部相同的日誌記錄庫),所以您的日誌記錄功能將被robotframework覆蓋。

這就是爲什麼你在log.html而不是你的文件中看到它。

您也可以參考Robot Framework not creating file or writing to it

希望它能幫助!