ошибка: не удается найти символ Logger logger = Logger.getLogger (this.getClass (). getName ()) после обновления Spring 1.5.9 до 2.0.1 - PullRequest
0 голосов
/ 09 мая 2018

Я изменил скрипт сборки Gradle, чтобы использовать Spring 2.0.1 вместо 1.5.9. Когда я запускаю gradle build, я получаю error: cannot find symbol Logger logger = Logger.getLogger(this.getClass().getName()). Это хорошо работало с предыдущей версией Spring Boot. Код использует import org.apache.log4j.Logger;. Как решить эту проблему?

build.gradle файл:

buildscript {
    ext {
        springBootVersion = '2.0.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'jacoco'
apply plugin: 'war'

sourceCompatibility = 1.8

 repositories {
    mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }

bootRun {
    sourceResources sourceSets.main
}

sourceSets {
    main {
        java {
            srcDirs = ["src/main/java", "src/generated/main/java"]
        }
    }
}

dependencies {

    compile("org.springframework.boot:spring-boot-starter-web") {
        exclude module: "spring-boot-starter-tomcat"
    }

    providedRuntime group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat'

    compile 'org.springframework.boot:spring-boot-starter-actuator'
    compile 'org.springframework.boot:spring-boot-starter'
    compile 'org.springframework.boot:spring-boot-starter-data-jpa'
    compile 'org.springframework.boot:spring-boot-starter-velocity:1.4.7.RELEASE'

    compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
    compile 'com.ryantenney.metrics:metrics-spring:3.1.3'

    compile 'com.github.ben-manes.caffeine:caffeine:2.6.2'
    compile 'org.hibernate:hibernate-java8'
    compile 'org.postgresql:postgresql'
    compile 'org.apache.commons:commons-lang3:3.5'
    compile 'commons-codec:commons-codec:1.9'
    compile 'io.springfox:springfox-swagger2:2.6.1'
    compile 'io.springfox:springfox-swagger-ui:2.6.1'
    compile 'javax.mail:mail:1.4.7'
    compile 'org.imgscalr:imgscalr-lib:4.2'
    compile 'com.restfb:restfb:1.37.0'
    compile 'com.google.apis:google-api-services-oauth2:v2-rev134-1.23.0'
    compile 'eu.bitwalker:UserAgentUtils:1.19'
    compile 'com.twilio.sdk:twilio:7.17.+'

    testCompile('com.h2database:h2')
    testCompile("org.springframework.boot:spring-boot-starter-test")

    compile fileTree(dir: 'libs', include: '*.jar')
}

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

По умолчанию Spring boot предоставляет Logback и SLF4J для ведения журнала, как указано в документации . Однако там вы можете поменять logback для log4j, включив следующую зависимость:

  • log4j 1.x spring-boot-starter-log4j
  • log4j 2.x spring-boot-starter-log4j2

Однако поддержка log4j 1.x была прекращена с момента загрузки Spring 1.4.x , так как она больше не поддерживается Apache:

Поддержка Log4j 1 была удалена после Объявление Apache EOL .

Вы все еще можете вручную добавить все зависимости, но поскольку у вас их нет, возможно, это причина того, что они больше не работают (возможно, одна из этих библиотек ранее использовала log4j). Вы должны добавить следующие зависимости:

compile 'org.slf4j:slf4j-log4j12:1.7.25'
compile 'org.slf4j:jul-to-slf4j:1.7.25'
compile 'org.slf4j:jcl-over-slf4j:1.7.25'
compile 'log4j:log4j:1.2.17'

Вы также должны исключить spring-boot-starter-logging, как указано в в этом ответе , вы можете сделать это, добавив следующую конфигурацию:

configurations {
    compile.exclude module: 'spring-boot-starter-logging'
}

Однако рекомендуется использовать SLF4J с Logback или SLF4J с log4j2.

0 голосов
/ 09 мая 2018

Spring Boot 2 по умолчанию использует Logback и SLF4J.
Вы можете использовать мост, который соединит log4j 1 с slf4j следующим образом:

compile group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.25'

Но я бы посоветовал вам переключить ваш код на использование slf4j (что может занять некоторое время, если ваша кодовая база большая).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...