我们想使用Log4j2作为与grails 3的日志绑定.
从我到目前为止可以搞清楚.我们有许多使用各种记录器的从属依赖项,因此我们需要使用SLF4J API.然后,我们需要将每个重定向到Log4j2绑定,而不是让grails/groovy/spring将SLF4J API重定向到Logback绑定.
由于grails 3使用Logback绑定,我计划遍历build.gradle中的每个依赖项,排除Logback绑定,并包含Log4j2绑定.这会有用吗?更新:是的
我们还需要将Log4j2 API桥接到SLF4j API吗?我们需要什么依赖?更新:见下文.
最后,我假设我们需要抛弃grails 3 logback.groovy配置,并将其中一个log4j2配置放在src/main/resources中.更新:是的
当我们想出来时,我会发布更新,但我敢打赌有人之前做过这件事.
2016-03-18更新:
事实证明这非常直截了当.我在grails 3项目上做了一个'./gradlew依赖项',看看Logback绑定/实现中有哪些依赖项(组:'ch.qos.logback',模块:'logback-classic')
首先,这是通过'grails create-app testit'命令生成的默认build.gradle:
buildscript {
ext {
grailsVersion = project.grailsVersion
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.5.0"
classpath "org.grails.plugins:hibernate4:5.0.2"
}
}
version "0.1"
group "testit"
apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"org.grails.grails-gsp"
apply plugin:"asset-pipeline"
ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" } …Run Code Online (Sandbox Code Playgroud)