gpt4 book ai didi

groovy - Spring Boot + Groovy + logback.groovy

转载 作者:行者123 更新时间:2023-12-04 08:42:48 27 4
gpt4 key购买 nike

我在 Spring-boot 应用程序中混合了 Groovy 和 Java。休息 Controller 和数据访问是用 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 配置中无法做到这一点。

构建.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 插件的默认值的选项,请参阅 Project layout
  • 注意:即使您混合了 java 和 groovy 文件,您也不必将它们分开(如果需要,您可以这样做)。我通常将它们都保存在 groovy 目录中。
  • 在您的 dependencies您正在使用简单依赖项而不是 Spring Boot starters 的部分(另见 reference doc)
  • 您有 2 个数据库依赖项(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 中的一些设置来配置日志记录启动器,见 Custom log configuration .

    例如。 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

    关于groovy - Spring Boot + Groovy + logback.groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805836/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com