Консольное приложение SpringBoot ничего не регистрирует в консоли - PullRequest
0 голосов
/ 02 мая 2019

Хочу сделать консольное приложение для весенней загрузки.Я добавил в свой pom.xml следующие строки:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

            <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.4.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

Я добавил файл log4j2.xml в свою папку ресурсов:

<Configuration status="INFO">
    <Appenders>
        <File name="MyFile" fileName="log"
              immediateFlush="true" append="false">
            <PatternLayout pattern=
                                   "%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>

И мой Main выглядит так:

    public static void main(String[] args) {
        LOG.info("STARTING THE APPLICATION");
        SpringApplication app = new SpringApplication(Main.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
        LOG.info("APPLICATION FINISHED");
    }

Проблема в том, что когда я запускаю приложение из терминала, у меня выводятся некоторые журналы и предупреждения на консоль, и я не хочу, чтобы это поведение:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (jar:file:/Users/robert.cebula/Projects/expense_summary/target/expense_summary-1.0.jar!/BOOT-INF/lib/spring-core-5.0.7.RELEASE.jar!/) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Знаете ли вы, что я могу сделать, чтобы избавиться от этих строк, напечатанных на консоли.Я не хотел бы, чтобы при загрузке пружины ничего печаталось на консоли.

1 Ответ

0 голосов
/ 02 мая 2019

Spring boot имеет встроенный файл регистрации.

Вам необходимо перезаписать его, создав собственный файл logback.xml.Вы можете прочитать больше о создании файла logback для пружины здесь .

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

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