我的python代码使用日志记录框架生成日志文件,并在日志文件中捕获所有INFO
消息。我将我的程序与ROBOT框架集成,现在不生成日志文件。相反,INFO
消息会打印在log.html
中。我理解这是因为正在调用机器人现有的记录器,因此INFO
被定向到log.html
。我不希望行为发生变化,我仍然希望仅使用INFO
级别的消息单独生成用户定义的日志文件。
我怎样才能做到这一点?
答案 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
希望它有所帮助!