2015-08-04 43 views
8

Tôi trộn Groovy và Java trong ứng dụng Khởi động mùa xuân của tôi. Các bộ điều khiển còn lại và truy cập dữ liệu được viết bằng Groovy. Cấu hình chủ yếu trong Java.Khởi động mùa xuân + Groovy + logback.groovy

Theo tài liệu logback, nếu có tệp logback.groovy trong đường dẫn lớp, nó phải được chọn trước logback.xml. Tuy nhiên chỉ logback.xml là làm việc trong trường hợp của tôi.

Tôi đang chạy ứng dụng dưới dạng ứng dụng khởi động chạy nước rút.

Ngoài ra, nó có giá trị lưu ý rằng mùa xuân gợi ý để kế thừa một số cấu hình đăng nhập như hình dưới đây

<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 
    <logger name="org.springframework.web" level="DEBUG"/> 
</configuration> 

Không có cách nào để làm điều này trong cấu hình 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 = [] 
     } 
    } 
} 

Trả lời

3

Thứ nhất, build.gradle của bạn trông xa lạ với tôi:

  • bạn không bao gồm các spring-boot-gradle-plugin
  • trong sourceSets lựa chọn của bạn, bạn xác định cài đặt đó là những giá trị mặc định của plugin Groovy, xem Project layout
  • Lưu ý: ngay cả khi bạn trộn java d tập tin groovy bạn không cần phải tách chúng (bạn có thể nếu bạn muốn). Tôi giữ chúng cả hai trong thư mục groovy.
  • trong phần dependencies của bạn, bạn đang sử dụng phụ thuộc đơn giản thay vì Spring Boot starters (xem thêm các reference doc)
  • Bạn có 2 DB phụ thuộc (H2 và HSQL)

Cố gắng tạo ra một dự án mẫu với Spring Initializr - switch phiên bản đầy đủ. build.gradle của bạn sẽ trông như thế

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' 
} 

Với cấu hình này logback.groovy nên làm việc. Đối với các sự cố cụ thể, chỉ cần đăng logback.groovy của bạn. Nhưng như bạn đã lưu ý, cấu hình Groovy không phải là một công dân đầy đủ. Khi bạn bao gồm khởi động spring-boot-starter-logging, bạn cũng có thể mở rộng cấu hình ghi nhật ký chuẩn với logback-spring.groovy hoặc logback-spring.xml.

Để kiểm soát hoàn toàn, bạn phải sử dụng cấu hình XML và các dự án nhỏ mà tôi đã ngừng sử dụng logback.groovy và thay vào đó chỉ cần định cấu hình khởi động ghi nhật ký qua một số cài đặt trong application.properties, xem Custom log configuration.

Ví dụ: một số cài đặt cho application.properties với nhật ký có cột màu (tất cả nền tảng ngoại trừ cửa sổ < 10 và trong IDEA ngay cả trong cửa sổ < 10):

logging.file = logs/jira.log 
spring.output.ansi.enabled = DETECT 
logging.level.root = INFO 
logging.level.org.apache.http = WARN 
Các vấn đề liên quan