LoginSignup
6
7

More than 5 years have passed since last update.

slf4j+logbackの設定でlogback.groovyが使えました

Last updated at Posted at 2015-07-30

Javaでのコードでslf4j+logbackをロガーとして採用する際、Groovyで設定を書きたくてlogback.groovyを作ったのですが、そこに指定したログファイルにログが書き出されない現象に遭遇しました。

logback.groovyが設定ファイルであることを明示しました

画面にはログが表示されるので、ファイルに書き出されない理由は設定にあると思い込んでいたのですが、JVM引数としてlogback.groovyが設定ファイルである旨指定すると、わんさかメッセージが表示されるようになり見当違いであることが判りました。

実行時引数
-Dlogback.configurationFile=logback.groovy

Groovyクラスが無いと初期化エラー

最初のbuild.gradleでは、以降に示す初期化エラーになっているようでした。

最初のbuild.gradle
apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.12'
    compile 'ch.qos.logback:logback-classic:1.1.3'
    compile 'ch.qos.logback:logback-core:1.1.3'

    testCompile 'junit:junit:4.12'
}

エラー抜粋
 Groovy classes are not available on the class path.  ABORTING INITIALIZION. 

どうやらエラーメッセージの通り、実行時にGroovyライブラリが必要なようで、依存ファイルにgroovy-allを追加したら期待通りログファイルに出力されるようになりました。

修正後のbuild.gradle
apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.12'
    compile 'ch.qos.logback:logback-classic:1.1.3'
    compile 'ch.qos.logback:logback-core:1.1.3'
    runtime 'org.codehaus.groovy:groovy-all:2.4.4' // 追加

    testCompile 'junit:junit:4.12'
}

参考

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7