SpringBoot控制台应用程序不记录任何内容

时间:2019-05-02 09:47:35

标签: java spring maven spring-boot

我想制作Spring Boot控制台应用程序。我将这些行添加到我的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 :(得分:0)

Spring Boot内置了一个注销文件。

您需要通过创建自己的logback.xml文件来覆盖它。您可以阅读有关为弹簧here创建回退文件的更多信息。

我建议将日志写入文件,而不要完全没有日志。