首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring引导+ Groovy + logback.groovy

Spring引导+ Groovy + logback.groovy
EN

Stack Overflow用户
提问于 2015-08-04 09:42:59
回答 1查看 3.3K关注 0票数 8

我在我的Spring应用程序中混合了Groovy和Java。Rest控制器和数据访问是用Groovy编写的。配置主要使用Java。

根据logback文档,如果类路径中有一个logback.groovy文件,则应该在logback.xml之前选择它。但是,在我的情况下,只有logback.xml在工作。

我正在运行的应用程序作为短跑启动应用程序。

此外,值得注意的是,spring建议继承一些日志记录配置,如下所示

代码语言:javascript
复制
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="org.springframework.web" level="DEBUG"/>
</configuration>

在Groovy配置中无法做到这一点。

build.gradle:

代码语言:javascript
复制
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework:spring-jdbc")
    compile("com.h2database:h2")
    compile("org.hsqldb:hsqldb")
    testCompile("junit:junit")
    compile('org.codehaus.groovy:groovy-all:2.3.10')
    testCompile('org.codehaus.groovy.modules.http-builder:http-builder:0.5.0-RC2')
    compile('org.slf4j:slf4j-simple:1.6.1')
}

sourceSets {
    main {
        groovy {
            srcDirs = ['src/main/groovy', 'src/main/java'] 
        }
        java {
            srcDirs = []
        }
    }
    test {
        groovy {
            srcDirs = ['src/test/groovy', 'src/test/java']
        }
        java {
            srcDirs = []
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-02-20 17:32:04

首先,你的build.gradle在我看来很奇怪:

  • 你不包括spring-boot-gradle-plugin
  • sourceSets选项中,您定义的设置是Groovy插件的默认值,请参见项目布局
  • 注意:即使混合了java和groovy文件,也不必将它们分开(如果需要,也可以)。我通常将它们都保存在groovy目录中。
  • dependencies部分中,您使用的是简单的依赖关系,而不是弹簧启动器 (也请参阅参考文档)。
  • 您有两个DB依赖项(H2和HSQL)

尝试用弹簧起爆创建一个示例项目-切换到完整版本。你的build.gradle看起来就像

代码语言:javascript
复制
buildscript {
    ext {
        springBootVersion = '1.5.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'groovy'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'demo'
    version = '0.0.1-SNAPSHOT'
}

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework.boot:spring-boot-starter'
    compile 'org.springframework.boot:spring-boot-starter-logging'
    compile 'org.springframework.boot:spring-boot-starter-jdbc'
    compile 'org.codehaus.groovy:groovy'
    compile 'com.h2database:h2'

    testCompile 'org.springframework.boot:spring-boot-starter-test'
    testCompile 'org.codehaus.groovy.modules.http-builder:http-builder:0.5.0-RC2'
}

使用这种配置,logback.groovy应该可以工作。对于具体的问题,只需张贴您的logback.groovy。但是,正如您已经注意到的,Groovy配置不是一个完整的公民。当您包含spring-boot-starter-logging启动程序时,还可以使用logback-spring.groovylogback-spring.xml扩展标准日志配置。

对于完全控制,您必须使用XML,对于小型项目,我不再使用logback.groovy,而是通过application.properties中的一些设置配置日志记录启动程序,参见自定义日志配置

例如,一些带有有色列的日志的application.properties设置(除了windows < 10以外的所有平台,甚至在windows <10下):

代码语言:javascript
复制
logging.file = logs/jira.log
spring.output.ansi.enabled = DETECT
logging.level.root = INFO
logging.level.org.apache.http = WARN
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31805836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档