【问题标题】:Log update issue while running python log via robot framework通过机器人框架运行 python 日志时的日志更新问题
【发布时间】:2019-09-03 13:54:40
【问题描述】:

问题:通过机器人文件调用以下日志方法时,无法在控制台中打印所有日志类型,在日志文件中也没有。

import logging
from colorlog import ColoredFormatter

class Log():
    LOG_LEVEL = logging.DEBUG
    LOGFORMAT = "  %(log_color)s%(levelname)-8s%(reset)s | %(log_color)s%(message)s%(reset)s"
    logging.root.setLevel(LOG_LEVEL)
    formatter = ColoredFormatter(LOGFORMAT)
    stream = logging.StreamHandler()
    stream.setLevel(LOG_LEVEL)
    stream.setFormatter(formatter)
    Log = logging.getLogger('pythonConfig')
    Log.setLevel(LOG_LEVEL)
    Log.addHandler(stream)

    logger = logging.getLogger(__name__)
    logging.basicConfig(
        filename='c://foo//app.log',
        format='%(asctime)s - %(levelname)s: %(message)s',
        datefmt='%d-%b-%y %H:%M:%S', level=logging.INFO,
    )

    @classmethod
    def warn(cls, message):
        cls.Log.warning(message)

    @classmethod
    def info(cls, message):
        cls.Log.info(message)

    @classmethod
    def error(cls, message):
        cls.Log.error(message)

    @classmethod
    def debug(cls, message):
        cls.Log.debug(message)

# Calling class methods

Log.warn("test")
Log.info("test")
Log.error("test")
Log.debug("test")

在命令提示符下使用 python 运行:-

C:foo>py log.py

  WARNING  | test
  INFO     | test
  ERROR    | test
  DEBUG    | test

app.log

01-Sep-19 21:32:31 - WARNING: test
01-Sep-19 21:32:31 - INFO: test
01-Sep-19 21:32:31 - ERROR: test
01-Sep-19 21:32:31 - DEBUG: test

当我通过机器人文件(Python >> 机器人套件)调用相同的方法时,我无法在日志文件(app.log)中打印任何日志,并且只能在控制台中看到错误和警告消息.有人可以在这方面帮助我吗?

Runner.py

import robot

logFile = open('c:\\foo\\ExecutionReport.txt','w')
htmlpath = "c:\\foo\\Reports.html"
robot.run("c:\\foo\\test_sample.robot", log=None,report=htmlpath, output=None,
          stdout=logFile)

机器人:-

*** Settings ***
Library  ../Robot/Log.py

*** Test Cases ***
testinglogger
    info  test
    error  test
    debug  test
    warn  test

app.log:

【问题讨论】:

  • 有人可以帮我解决这个问题吗?
  • 有什么帮助吗?

标签: python robotframework


【解决方案1】:

在 Python Runner.py 脚本中,您正在调用 robot.run 函数并为执行设置一些参数,例如 log=Noneoutput=None。这会导致没有日志文件被创建(没有输出)并且没有日志可见(ERRORWARN 显然之外)。

查看这些 Robot Framework 运行参数:

-o --output file 其中 file 是机器人输出的名称。将NONE 设置为此也会导致报告和所有其他文件日志记录被禁用。

保持未分配以创建机器人框架的默认日志文件。我相信这映射到robot.run 命令的output 参数。

-L --loglevel level 其中 level 是所需的最低日志记录级别。

可用级别:TRACEDEBUGINFO(默认)、WARNNONE(无日志记录)。在这种情况下,您可能希望将其设置为 DEBUG

对您的 Runner.py 脚本进行必要的更改,然后重试 :)

这是最新版本3.1.2 Robot Framework 的robot.run 脚本的完整文档:

https://robot-framework.readthedocs.io/en/v3.1.2/_modules/robot/run.html

【讨论】:

  • 我已按照您的建议进行了编辑,但仍未更新日志文件 robots.run("C:\\foo\\test_sample.robot", log=log, report=report, output=output , loglevel=logging.DEBUG, stdout=exec_report)
  • 还有什么帮助吗?
猜你喜欢
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
相关资源
最近更新 更多