spring-boot - 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-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,因为这将允许您在日志文件变大时创建新文件。
推荐阅读
- java - 查找整数数组的平均值
- python - 理解 [] 符号
- python - 将python转换为SML
- eclipse - 无法在 Eclipse Git Remote Tracking 中为一台机器获取新分支
- excel - VBA:带双引号的公式
- vb.net - 使用 ExcelPackage 类库在工作表中结束行
- android - 有没有办法从 Play 商店的即时应用程序中删除“试用”按钮
- javascript - 如何使用 datepicker 过滤 chart.js?
- azure - 如何从 Azure 容器应用服务向 Azure ACR 进行身份验证
- python - AWS ECS 服务 HTTP 请求未重定向?