Grails 2.1.1を使用して開発していますが、Logback(http://logback.qos.ch)をデフォルトのロギングフレームワークとして統合したいと考えています。これは、より優れたロギング機能を提供し、Groovyを介して構成することもできるためです。
Logback 1.0.7(最新)はでしか機能しないslf4j 1.6.6
ので、Grailsの依存関係をアップグレードしたいと思います。Grails2.1.1はを使用してslf4j 1.6.2
います。これを正しく行う方法は?
私は次のことを試みました:BuildConfig.groovy
私は除外grails-plugin-log4j
し、slf4j-api
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
excludes "grails-plugin-log4j", "slf4j-api"
}
...
}
そして私は他の必要なライブラリと一緒slf4j-api 1.6.6
にロードしようとしますcompile
build
runtime
grails.project.dependency.resolution = {
...
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
compile "org.slf4j:slf4j-api:1.6.6"
build "org.slf4j:slf4j-api:1.6.6",
"ch.qos.logback:logback-core:1.0.7",
"ch.qos.logback:logback-classic:1.0.7"
runtime "org.slf4j:slf4j-api:1.6.6",
"org.slf4j:log4j-over-slf4j:1.6.6", // logback dependency for classic module, as seen on http://logback.qos.ch/dependencies.html
"ch.qos.logback:logback-core:1.0.7",
"ch.qos.logback:logback-classic:1.0.7"
}
...
}
ここで、Grailsコマンドラインからまたはのいずれgrails compile
かを実行したい場合grails clean
、LoggerFactoryクラスが見つからなかったためにスクリプトを実行できなかったと文句を言います。
| Loading Grails 2.1.1
| Configuring classpath
| Error Error executing script Compile: org/slf4j/LoggerFactory (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272)
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.<clinit>(PathMatchingResourcePatternResolver.java:169)
| Error Error executing script Compile: org/slf4j/LoggerFactory
slf4j-api
基盤を適切にアップグレードするにはどうすればよいですか?
最初のAPIを除外しないslf4j-api
と、呼び出し時に削除済みとしてマークされた「古い」1.6.2APIと競合しgrails dependency-report
ます...
また、Logback用の外部設定ファイルが欲しいです。どのように実装しますか?Log4jを使用しlog4jConfigurer
て、ファイル内でBeanを宣言しましたconf/spring/resources.groovy
-Logbackでどのように実行されますか?
Logbackを使用してGrails2.1.1をログに記録した経験のある人はいますか?この問題についてアドバイスをいただけますか?