У меня есть библиотека Java, поверх которой я имею легкие groovy-скрипты, которые работают как утилиты командной строки на терминале. Таким образом, вместо того, чтобы просить, чтобы мои пользователиНастроить logback из groovy-скрипта
java -cp ... com.foo.bar.package.SomeMainClass ...
Они имеют доступ к «стандартным» POSIX-подобные утилиты:
footool -a <arg> -b <another> -vfg <positional_arg>
Я хотел бы, что -v
аргумент для контроля уровня ведения журнала для консоли Appender. Теперь, я в отличный шрифт. Groovy имеет самый отличный CLIbuilder, чтобы упростить анализ аргументов. Резервное копирование настраивается с использованием программных файлов. То, что я хочу сделать, должно быть легко. Правильно?
И все же, кажется, все, но невозможно проверить значение -v
флага, и, соответственно, поставил перед Level
за порог фильтра для к appender'у, который уже указанного в XML, или даже создать фильтр и Appender с нуля и добавить к регистратору.
Действительно? Похоже, что должен быть способом без написания 30 строк кода Java для Joran. Что мне нужно сделать, чтобы получить это (или что-то, что не 30 строк кода Java для Joran) для работы из моего groovy-скрипта?
def cliBuilder = new CliBuilder...
def options = cli.parse(args)
def logLevel = options.v ? Level.DEBUG : Level.INFO
appender("CONSOLE", ConsoleAppender) {
filter(ThresholdFilter) {
level = logLevel
}
encoder(PatternLayoutEncoder) {
pattern = "%-4relative [%thread] %-5level %logger{30} - %msg%n"
}
}
Установка уровня регистратора отключит уровней для всех приложений. Это не то, что моя Groovy/XML-конфигурация пытается сделать. Конфигурирование приложения с пороговым фильтром компактно и легко с использованием Groovy DSL. Кажется, это не компактный способ в Java. – dgorur