Spring Boot启动日志到文件

时间:2018-12-06 09:33:00

标签: spring-boot logging

是否始终将启动日志发送到文件,现在所有日志直到语句“ Started Application in ....”都进入stdout,我希望所有日志都记录到文件。

我的登录配置:

<?xml version="1.0" encoding="UTF-8"?>
       <configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <property name="LOG_FILE" value="logs/app${PID}.log"/>

    <appender name="AI-APPENDER"
              class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE"/>
        <appender-ref ref="AI-APPENDER"/>
    </root>
</configuration>

1 个答案:

答案 0 :(得分:1)

您需要配置日志记录框架。假设您只是使用spring-boot中的默认值,则为LogBack。因此,看看their docs或进行搜索,有很多有用的资源(like this one

如果将具有以下内容的logback.xml文件添加到资源文件夹,则应该以与现在控制台一样的格式记录到控制台和文件(称为application.log)。

<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>application.log</file>

    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

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

您可能要使用RollingFileAppender,因为这样可以在日志文件变大时创建新文件。