我在我的Spring-boot应用程序中混合了Groovy和Java。其余的控制器和数据访问是用Groovy编写的。配置主要在Java中。
根据logback文档,如果存在logback。在类路径中的Groovy文件中,它应该在logback.xml之前被选中。然而,只有logback.xml在我的情况下工作。
我将应用程序运行为sprint-boot-application。
另外,值得注意的是,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 = []
}
}
}
首先,你的build.gradle
看起来很奇怪:
- 不包含
spring-boot-gradle-plugin
- 在你的
sourceSets
选项中,你定义的设置是Groovy插件的默认值,参见项目布局 - 注意:即使你混合了java和groovy文件,你也不必把它们分开(如果你想的话你可以分开)。我通常把它们都放在groovy目录中。
- 在你的
dependencies
部分,你使用简单的依赖关系,而不是春季启动启动器(另见参考文档) - 你有2 DB依赖关系(H2和HSQL)
尝试用Spring Initializr创建一个示例项目-切换到完整版本。你的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 .在IDEA中,甚至在windows下<10):
logging.file = logs/jira.log
spring.output.ansi.enabled = DETECT
logging.level.root = INFO
logging.level.org.apache.http = WARN