首页 > 解决方案 > Spring boot 启动日志到文件

问题描述

无论如何将启动日志发送到文件,现在所有日志都到语句“Started Application in....”进入标准输出,我希望所有日志记录到文件。

我的登录配置:

<?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>

标签: spring-bootlogging

解决方案


你需要配置你的日志框架。假设您只是使用 spring-boot 的默认设置,那么这就是 LogBack。所以看看他们的文档或搜索一下,有很多有用的资源(比如这个

如果您将具有以下内容的 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,因为这将允许您在日志文件变大时创建新文件。


推荐阅读