小编fcn*_*man的帖子

为Log4j2配置Grails 3

我们想使用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)

grails logback slf4j log4j2 grails-3.1

8
推荐指数
1
解决办法
1528
查看次数

标签 统计

grails ×1

grails-3.1 ×1

log4j2 ×1

logback ×1

slf4j ×1