首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过机器人框架运行python日志时的日志更新问题

通过机器人框架运行python日志时的日志更新问题
EN

Stack Overflow用户
提问于 2019-09-01 16:15:59
回答 1查看 1K关注 0票数 1

问题:当通过机器人文件调用下面的日志方法时,无法获得控制台中打印的所有日志类型,在日志文件中没有任何日志类型。

代码语言:javascript
复制
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从命令提示符运行的:-

代码语言:javascript
复制
C:foo>py log.py

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

app.log

代码语言:javascript
复制
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

代码语言:javascript
复制
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)

机器人:-

代码语言:javascript
复制
*** Settings ***
Library  ../Robot/Log.py

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

app.log: None

EN

回答 1

Stack Overflow用户

发布于 2019-09-03 05:54:40

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

请参见这些机器人框架运行参数:

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

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

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

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

Runner.py脚本进行所需的更改,然后重试:)

以下是最新版本的3.1.2机器人框架的robot.run脚本的完整文档:

modules/robot/run.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57747602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档