【问题标题】:Using logger in groovy class for soapui在soapui的groovy类中使用记录器
【发布时间】:2017-02-02 23:49:24
【问题描述】:

我在 soapui(开源)中创建了以下 groovy 脚本。

import org.apache.log4j.Logger
class Test{

    static String hello(){
        def mylog = Logger.getLogger("")
        mylog.info("Hello")
        return mylog
    }
}

log.info Test.hello()
log.info loge here

它不会检索任何错误消息并运行,但它不会检索我正在寻找的信息日志 (mylog.info) 中的字符串。

最初我认为'log.info' 会成功,这与使用 sopaui groovy 脚本时的 println 等效。但是因为我试图从一个类中写一个日志,这个类默认不知道'log.info',这就是为什么我指定使用'log4j.Logger',但仍然不确定我错过了什么。

在类之外,我放了两个 log.info 来打印两个记录器对象的值(第一个是我的 groovy 类中的,第二个是soapui 中的),这就是我得到的:

Thu Feb 02 17:10:56 CST 2017:INFO:org.apache.log4j.Logger@24e6b930            
Thu Feb 02 17:10:56 CST 2017:INFO:org.apache.log4j.Logger@6ca396be

它们看起来一样,除了@之后的内容。不确定这些数字代表什么,如果这是我的班级不写信息日志的部分原因。

如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 你想在课堂上使用log吗?
  • 是的,我希望能够打印不同的日志,以便跟踪班级在做什么。
  • log,context,testRunner 通常不适用于类。我们必须在实例化类时传递它

标签: logging groovy log4j soapui


【解决方案1】:

看起来你遇到了小问题。

由于log 变量已经在Groovy Script 范围内可用,您只需将其传递给您的方法,如下所示:

Groovy 脚本

class MyTest{
    static String testLogging(log){
        log.info("Hello")
    }
}
MyTest.testLogging(log)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    相关资源
    最近更新 更多