2017-01-03 48 views
1

我使用Spring啓動1.3.6.RELEASE和log4j2.yml如下:SLF4J與log4j2不靈春啓動1.4.3.RELEASE

Configuration: 
    status: info 

    Properties: 
    Property: 
     name: log-path 
     value: "/dvl-log/pol/apps/logs/api" 

    Appenders: 
    Console: 
     - name: Console 
     target: SYSTEM_OUT 
     PatternLayout: 
      Pattern: "%d{HH:mm:ss.SSS} %-5level %logger{1} - %msg%n" 

    Loggers: 
    Root: 
     level: info 
     AppenderRef: 
     - ref: Console 
    Logger: 
    - name: com.company.api 
     level: trace 
     additivity: false 
     AppenderRef: 
     - ref: Console 
      level: trace 

與下面的代碼的日誌記錄工作完美。

@Slf4j 
public class LogExample{ 
     public void logMethods(String className,String methodName){ 

     log.trace("{} >> {}", className, methodName); 
     } 
} 

但是,當我升級到Spring Boot 1.4.3.RELEASE,記錄器不工作。

我升級到1.4.3後,新的build.gradle是(只是一個版本的變化)

version '1.0' 
// dependencies for command line 
buildscript { 
    ext { 
     springBootVersion = '1.4.3.RELEASE' 
     dependencyManagementVersion = '0.5.2.RELEASE' 
    } 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}" 
     classpath "io.spring.gradle:dependency-management-plugin:${dependencyManagementVersion}" 
    } 
} 

apply plugin: "io.spring.dependency-management" 
apply plugin: 'java' 
apply plugin: 'spring-boot' 
apply plugin: 'war' 
apply plugin: 'eclipse' 
apply plugin: 'idea' 

// JDK 8 
sourceCompatibility = JavaVersion.VERSION_1_8 
targetCompatibility = JavaVersion.VERSION_1_8 

repositories { 
    jcenter() 
} 

ext { 
    springCloudVersion = 'Brixton.SR4' 
    springBootVersion = '1.4.3.RELEASE' 
    swaggerVersion = '2.4.0' 
    jodaTimeVersion = '2.9.4' 
    jacksonJodaVersion = '2.5.1' 
    junitVersion = '4.12' 
    springWsTestVersion = '2.2.3.RELEASE' 
    lombokVersion = '1.16.10' 
    jsonPathVersion = '2.2.0' 
    ehcacheVersion = '3.2.0' 
    javaxCacheVersion = '1.0.0' 
} 

dependencyManagement { 
    imports { 
     mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" 
     mavenBom "org.springframework.boot:spring-boot-starter-parent:${springBootVersion}" 
    } 
} 

sourceSets { 
    test { 
     java { 
      srcDir 'src/test/unit/java' 
     } 
     resources { 
      srcDir 'src/test/unit/resources' 
     } 
    } 
} 

dependencies { 

    /* core libraries */ 
    compile('org.springframework.cloud:spring-cloud-starter-config') { 
     exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' 
    } 
    compile('org.springframework.boot:spring-boot-starter-web') { 
     exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' 
    } 
    compile("org.springframework.boot:spring-boot-starter-hateoas"){ 
     exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' 
    } 
    compile 'org.springframework.ws:spring-ws-core' 

    // logging 
    compile('org.springframework.boot:spring-boot-starter-log4j2') 
    compile('com.fasterxml.jackson.dataformat:jackson-dataformat-yaml') 
    compile('com.fasterxml.jackson.core:jackson-databind') 

    // embedded server 
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat') 


    // https://mvnrepository.com/artifact/org.projectlombok/lombok-maven 
    compile "org.projectlombok:lombok:${lombokVersion}" 

    // https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path 
    // A Java DSL for reading JSON documents 
    compile "com.jayway.jsonpath:json-path:${jsonPathVersion}" 


    /* plugins */ 

    /* test libraries */ 
    // unit 
    testCompile "junit:junit:${junitVersion}" 
    testCompile "org.springframework.boot:spring-boot-starter-test" 
    testCompile "org.springframework.ws:spring-ws-test:${springWsTestVersion}" 
} 

war { 
    archiveName = "${project.name}.war" 
} 

我在這裏失蹤的事情是什麼? TIA

我想補充更多細節: 有log4j的-API:2.6.2,log4j的核心:2.6.2和log4j的-SLF4J-IMPL:2.2.6類路徑升級到春季啓動後1.4 0.3。事情是appender沒有爲trace級別工作,因爲我得到info或更高級別的日誌。

+0

檢查升級後log4j2是否在您的類路徑中。 – phani

+0

@phani在升級後的類路徑中有log4j-api:2.6.2,log4j-core:2.6.2和log4j-slf4j-impl:2.2.6 ...事情是appender不能用於跟蹤級別,因爲我是獲取信息或以上級別的日誌。 –

+0

我沒有log4j2的第一手經驗,所以我只能提供一些輸入:考慮到某種形式的日誌記錄正在工作,我猜這個問題是由於'log4j2.yml'的內容引起的。檢查舊版本和新版本之間的SpringBoot更新版本的log4j2。 – phani

回答

2

我通過將log4j2.yml直接移動到resource目錄解決了此問題。

早些時候,與Spring 1.3.6引導,我已經把log4j2.ymlresources/logging目錄與configuration.yml下爲

logging: 
    config: classpath:logging/log4j2.yml 

我不知道爲什麼它沒有爲1.4.3.RELEASE工作。

相關問題