Ведение журнала информации отключено в SpringApplicationRunListener.starting - PullRequest
0 голосов
/ 13 апреля 2020

Я работал над созданием нового SpringApplicationRunListener и попытался вставить некоторые записи в метод запуска. Ведение журнала было на уровне INFO. Однако регистрация не будет отображаться на консоли. Все мои другие записи для класса работают, как и ожидалось до сих пор. Соответствующие части моего проекта следующие:

Build.gradle

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.2.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
}

group 'org.cspringer'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.springframework.boot:spring-boot-starter-web"
}

Custom SpringApplicationRunListener

public class CustomSpringApplicationRunListener implements SpringApplicationRunListener {

    private static final Logger log = LoggerFactory.getLogger(CustomSpringApplicationRunListener.class);

    public CustomSpringApplicationRunListener(SpringApplication springApplication, String... args) {
        log.info("inside ctor");
    }

    @Override
    public void starting() {
        System.out.println("<sout> inside starting");
        System.out.println("is info logging enabled: " + log.isInfoEnabled());
        log.info("inside starting");
    }

    @Override
    public void contextPrepared(ConfigurableApplicationContext context) {
        log.info("inside contextPrepared");
    }
}

Простой класс с методом main

@RestController
@SpringBootApplication
public class Example {

    private static final Logger log = LoggerFactory.getLogger(Example.class);

    @Autowired
    ApplicationContext applicationContext;

    @RequestMapping("/")
    String home() {
        return "Hello";
    }

    public static void main(String[] args) {
        SpringApplication.run(Example.class, args);
    }
}

Регистрация конфигурации в приложении Обратите внимание, что регистрация с использованием реализации Logger не отображается, но вызовы System.out.println действительно отображаются. Также обратите внимание, что вызов log.isInfoEnabled() возвращает false. Я искал исходный код Spring, чтобы увидеть, отключает ли каким-то образом SpringApplication ведение журнала, но я ничего не могу найти. Я в растерянности относительно того, как INFO регистрация волшебным образом отключается, а затем снова включается здесь.

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