Использование логгера в классном классе для мыла

Я создал следующий groovy скрипт в soapui (opensource).

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' сделает это, что эквивалентно println при работе со скриптом sopaui groovy. Но так как я пытаюсь написать журнал из класса, класс по умолчанию не знает log.info, поэтому я указал использование log4j.Logger, но все еще не уверен, что мне не хватает.

Вне класса я поместил два log.info, чтобы напечатать значение обоих объектов логгера (первый - из моего классового класса, а второй - из 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

Они выглядят одинаково, за исключением того, что после @. Не уверен, что означают эти цифры, если это одна из причин, почему мой класс не записывает информационный журнал.

Если кто-то может мне помочь, я был бы признателен.

1 ответ

Решение

Похоже, вы столкнулись с тривиальной проблемой.

поскольку log переменная уже доступна в Groovy Script вам просто нужно передать это в ваш метод, как показано ниже:

Groovy Script

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

Другие вопросы по тегам