我在我的Spring应用程序中混合了Groovy和Java。Rest控制器和数据访问是用Groovy编写的。配置主要使用Java。
根据logback文档,如果类路径中有一个logback.groovy文件,则应该在logback.xml之前选择它。但是,在我的情况下,只有logback.xml在工作。
我正在运行的应用程序作为短跑启动应用程序。
此外,值得注意的是,spring建议继承一些日志记录配置,如下所示
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
</configuration>在Groovy配置中无法做到这一点。
build.gradle:
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 = []
}
}
}发布于 2017-02-20 17:32:04
首先,你的build.gradle在我看来很奇怪:
spring-boot-gradle-pluginsourceSets选项中,您定义的设置是Groovy插件的默认值,请参见项目布局dependencies部分中,您使用的是简单的依赖关系,而不是弹簧启动器 (也请参阅参考文档)。尝试用弹簧起爆创建一个示例项目-切换到完整版本。你的build.gradle看起来就像
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.groovy或logback-spring.xml扩展标准日志配置。
对于完全控制,您必须使用XML,对于小型项目,我不再使用logback.groovy,而是通过application.properties中的一些设置配置日志记录启动程序,参见自定义日志配置。
例如,一些带有有色列的日志的application.properties设置(除了windows < 10以外的所有平台,甚至在windows <10下):
logging.file = logs/jira.log
spring.output.ansi.enabled = DETECT
logging.level.root = INFO
logging.level.org.apache.http = WARNhttps://stackoverflow.com/questions/31805836
复制相似问题