为什么Spring应用程序将日志保存在两个位置?

时间:2017-11-14 21:45:11

标签: spring-boot logback

当应用程序启动时(spring-boot),应用程序将控制台中的日志保存在两个位置。如何改变?

这是一个多模块应用程序,这是其中一个模块的配置。

的pom.xml:

...
<properties>
    <logs.path>${basedir}/logs</logs.path>
</properties>
...

application.yml:

...
logging.path: @logs.path@
...

logback.xml:

<configuration>

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <charset>utf-8</charset>
        <pattern>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta([%thread]) %logger{36}.%M: %msg%n
            </pattern>
        </pattern>
    </encoder>
</appender>

<appender name="CONSOLE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_PATH}/console.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_PATH}/archived/console/console.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>90</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>utf-8</charset>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{36}.%M: %msg%n</pattern>
    </encoder>
</appender>

<root level="info">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="CONSOLE_FILE"/>
</root>

</configuration>

当我运行应用程序时,日志会保存在以下位置:

模块/ LOG_PATH_IS_UNDEFINED /的console.log

模块/ singleModule /日志/的console.log

如何修复它。

2 个答案:

答案 0 :(得分:0)

从application.yml中删除LOG_PATH并检查error[E0277]: the trait bound `for<'r> std::ops::Fn(&'r std::vec::Vec<i32>) -> f64 + 'static: std::marker::Sized` is not satisfied 变量是否已正确设置。

答案 1 :(得分:0)

我添加了标签,我指定了application.yml文件。它有所帮助:

<configuration>

<property resource="application.yml" />

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <charset>utf-8</charset>
        <pattern>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta([%thread]) %logger{36}.%M: %msg%n
            </pattern>
        </pattern>
    </encoder>
</appender>

<appender name="CONSOLE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logging.path}/console.log</file>
...

application.yml和logback.xml文件位于资源文件夹中。