2015-08-04 20 views
8

benim İlkbahar-çizme uygulamasında Groovy ve Java karıştırma ediyorum. Dinlenme denetleyicileri ve veri erişimi Groovy'de yazılmıştır. Yapılandırmalar çoğunlukla Java'dadır. sınıf yolunda bir logback.groovy dosyası varsa logback belgelerine gereğince Bahar çizme + Groovy + logback.groovy

, önümüzdeki logback.xml ait alınmayı gerekiyordu. Ancak benim durumumda sadece logback.xml çalışıyor.

ben sürat-çizme-uygulaması olarak uygulamayı çalıştırıyorum. Groovy config Bunu yapmanın bir yolu yoktur

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

aşağıda gösterildiği gibi

Ayrıca, bu bahar dikkati çekiyor günlüğü yapılandırmasının bazı miras öneriyoruz.

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 = [] 
     } 
    } 
} 

cevap

3

İlk olarak, build.gradle bana tuhaf görünüyor:

  • Eğer olan ayarları tanımlamak için sourceSets seçeneklerinde spring-boot-gradle-plugin
  • içermez Groovy eklentinin varsayılan değerler, Project layout
  • Not bakın: Eğer Java'nın bir mix bile d groovy dosyaları onları ayırmak zorunda değilsiniz (eğer isterseniz). Ben her ikisini de mükemmel bir dizinde tutuyorum. senin dependencies bölümünde
  • sen Sen Spring Initializr ile örnek bir proje oluşturmak için 2 DB bağımlılıkları (H2 ve HSQL)

deneyin var

  • (ayrıca reference doc bakınız) yerine Spring Boot starters basit bağımlılıklar kullanıyor - anahtarı tam sürüme Sizin build.gradlelogback.groovy çalışmalıdır Bu yapılandırma ile

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

    gibi görünecektir. Belirli sorunlar için sadece logback.groovy numaranızı gönderin. Ancak, belirttiğiniz gibi Groovy yapılandırması tam bir vatandaş değildir. spring-boot-starter-logging starter'ı eklediğinizde standart loglama konfigürasyonunu logback-spring.groovy veya logback-spring.xml ile de genişletebilirsiniz. Tam kontrol için

    XML yapılandırma kullanmak zorunda ve küçük projeler için ben logback.groovy kullanmayı bırakıp bunun yerine sadece, Custom log configuration bkz application.properties bazı ayarları aracılığıyla günlük marş konfigürasyon dosyasında.

    E.g. (Hatta pencerelerin < 10 altında pencereler < 10 hariç ve IDEA tüm platformlar) renkli sütunlu günlükleri ile application.properties için bazı ayarları:

    logging.file = logs/jira.log 
    spring.output.ansi.enabled = DETECT 
    logging.level.root = INFO 
    logging.level.org.apache.http = WARN 
    
  • İlgili konular