Как подавить сообщения INFO о конфигурации Spring?

Я недавно начал использовать Spring через STS IDE. Я пытался избавиться от всех сообщений журнала INFO при запуске автономного приложения. Я смотрел на подобные вопросы здесь и в других местах, которые помогли мне уменьшить количество сообщений INFO, но не подавить их полностью

Я создал минимальное тестовое приложение для Spring/Maven (т.е. не использую Spring Boot):

public class Main
{
    public static void main (String[] args)
    {
        try(ConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationContext.class))
        {
            System.out.println("Hello");
        }
    }
}

с пустым контекстом приложения:

@Configuration
public class ApplicationContext
{
}

Я сократил POM до минимума:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.springframework.samples</groupId>
  <artifactId>TestLog</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <properties>

        <!-- Generic properties -->
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- Spring -->
        <spring-framework.version>3.2.3.RELEASE</spring-framework.version>

        <!-- Logging -->
        <logback.version>1.0.13</logback.version>
        <slf4j.version>1.7.5</slf4j.version>

    </properties>

    <dependencies>
        <!-- Spring and Transactions -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>

        <!-- Logging with SLF4J & LogBack -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies> 
</project>

Согласно редактору STS POM, это приводит к следующему списку разрешенных зависимостей:

  • aopalliance
  • Обще-каротаж
  • logback-classic (время выполнения)
  • logback-core (время выполнения)
  • SLF4J-апи
  • весна-АОП
  • весна-бобы
  • весна-контекст
  • весна-жильный
  • весна-выражение

Следуя приведенным здесь ответам на подобные вопросы, я включил следующее commons-logging.properties файл:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
org.apache.commons.logging.simplelog.defaultlog=ERROR

и следующее logback.xml файл:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </encoder>
  </appender>

   <logger name="org.springframework" level="ERROR"/>

  <root level="ERROR">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

При наличии файлов конфигурации ведения журнала, запуск приложения Java приводит к следующему выводу:

[INFO] AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7e6cbb7a: startup date [Wed Dec 06 13:00:17 UTC 2017]; root of context hierarchy
[INFO] DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@649d209a: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,applicationContext,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
Hello
[INFO] AnnotationConfigApplicationContext - Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7e6cbb7a: startup date [Wed Dec 06 13:00:17 UTC 2017]; root of context hierarchy
[INFO] DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@649d209a: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,applicationContext,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy

Откуда поступают строки [INFO] и как их подавить?

0 ответов

Другие вопросы по тегам