Java ライブラリがあり、その上に、端末ベースのコマンドライン ユーティリティとして機能する軽量の groovy スクリプトがあります。ユーザーにそうするように頼むのではなく
java -cp ... com.foo.bar.package.SomeMainClass ...
「標準」POSIX ライクなユーティリティにアクセスできます。
footool -a <arg> -b <another> -vfg <positional_arg>
-v
コンソールアペンダーへのログレベルを制御する引数が欲しいです。今、私はグルーヴィーなスクリプトにいます。Groovy には、引数の解析を容易にする最も優れた CLIbuilder があります。Logback は、groovy プログラムを使用して構成されます。私がやりたいことは簡単なはずです。右?
-v
それでも、フラグの値をチェックして、それに応じLevel
て XML で既に指定されているアペンダーのしきい値フィルターを設定したり、フィルターとアペンダーを最初から作成してロガーに追加したりすることはほとんど不可能に思えます。
本当に?Joran用に 30 行の Java コードを書かない方法があるに違いないようです。これ (または Joran 用の 30 行の Java コードではないもの) を私の 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"
}
}