2017-02-21 53 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

希望它能帮助!