机器人框架信息消息不打印

时间:2017-02-21 10:59:51

标签: python logging robotframework

我的python代码使用日志记录框架生成日志文件,并在日志文件中捕获所有INFO消息。我将我的程序与ROBOT框架集成,现在不生成日志文件。相反,INFO消息会打印在log.html中。我理解这是因为正在调用机器人现有的记录器,因此INFO被定向到log.html。我不希望行为发生变化,我仍然希望仅使用INFO级别的消息单独生成用户定义的日志文件。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

现在已经解决了这个问题,这是一个非常小的问题。但我仍然在深入分析它,当我清楚确切的原因时会更新。 这是我使用的模块,

def call_logger(logger_name, logFile):
        level = logging.INFO
        l = logging.getLogger(logger_name)
        if not getattr(l, 'handler_set', None):
                formatter = logging.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”是一个内置的机器人关键字。

答案 1 :(得分:0)

Python代码 - >记录库 - > "记录文件"

RobotFramework - > Python代码 - >记录库 - >默认情况下" log.html"

当您使用python代码运行时,它将允许您设置日志文件名。 但是当你使用robotframework运行时,默认情况下该文件设置为log.html(因为机器人在内部使用相同的日志库),因此你的日志记录功能会被机器人框架覆盖。

这就是为什么你在log.html而不是你的文件中看到它。

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

希望它有所帮助!