在 groovy class 中使用 logger for soapui

Using logger in groovy class for soapui

我在 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 等效。但是由于我试图从 class 写入日志,默认情况下 class 不知道 'log.info',这就是我指定使用 'log4j.Logger' 的原因,但是仍然不确定我错过了什么。

在 class 之外,我放了两个 log.info 来打印两个记录器对象的值(第一个是来自我的 groovy class 的值,第二个来自 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

它们看起来一样,只是@ 后面的内容不同。如果这是我的 class 不写入信息日志的部分原因,则不确定这些数字代表什么。

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

看来您 运行 陷入了琐碎的问题。

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

Groovy 脚本

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