Почему в Groovy Script отсутствуют журналы моей библиотеки?
Я использовал HttpBuilder-NG в большом скомпилированном проекте и полагался на его регистрацию запросов и ответов при отладке, но использование его в автономном скрипте Groovy приводит только к выходным данным моего класса, а не журналам библиотеки.
Может ли кто-нибудь предложить, как получить те журналы, которые я ожидаю увидеть из используемой библиотеки HttpBuilder-NG?
Вот сценарий быстрого тестирования, который я собрал:
// logging-test.groovy
import ch.qos.logback.classic.Logger
import ch.qos.logback.classic.Level
import static groovyx.net.http.HttpBuilder.configure
import static groovyx.net.http.util.SslUtils.ignoreSslIssues
import groovy.util.logging.Slf4j
import groovyx.net.http.OkHttpBuilder
@GrabConfig(systemClassLoader = true) // Encounters class loading issues without this
@GrabResolver(name = 'mcArtifacts', root = 'https://artifactory.mycompany.com/artifactory/maven-all/')
@Grab(group = 'io.github.http-builder-ng', module = 'http-builder-ng-core', version = '1.0.3')
@Grab(group = 'io.github.http-builder-ng', module = 'http-builder-ng-okhttp', version = '1.0.3')
@Grab('ch.qos.logback:logback-classic:1.2.3')
@Grab('ch.qos.logback:logback-core:1.2.3')
@Slf4j
class LoggingTest {
private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(LoggingTest.class)
static void main(String[] args) {
new LoggingTest().run(args)
}
def run(String[] args) {
def builder = OkHttpBuilder.configure({
ignoreSslIssues execution
request.uri = "https://dummy.restapiexample.com"
})
def currentContents = builder.get {
request.uri.path = "/api/v1/employees"
}
LOGGER.info "Testing output - HttpBuilder-NG gives back a ${currentContents.getClass()}"
LOGGER.debug "Validating debug works."
}
}
И для конфигурации входа в систему:
// logback.groovy
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.ConsoleAppender
appender('CONSOLE', ConsoleAppender) {
encoder(PatternLayoutEncoder) {
pattern = '%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n'
}
}
logger 'groovyx.net.http.JavaHttpBuilder', DEBUG, [ 'CONSOLE' ]
logger 'groovy.net.http.JavaHttpBuilder', DEBUG, [ 'CONSOLE' ]
logger 'groovy.net.http.JavaHttpBuilder.content', TRACE, [ 'CONSOLE' ]
logger 'groovy.net.http.JavaHttpBuilder.headers', DEBUG, [ 'CONSOLE' ]
root DEBUG, ['CONSOLE']
Вывод в консоль при выполнении:
$ groovy logging-test.groovy
08:57:46.053 [main] INFO LoggingTest - Testing output - HttpBuilder-NG gives back a class org.apache.groovy.json.internal.LazyMap
08:57:46.056 [main] DEBUG LoggingTest - Validating debug works.