【发布时间】:2020-02-25 11:15:21
【问题描述】:
我想配置 Spring 将日志消息写入文件:
logging.file=/my-logs/app.log
logging.path=/my-logs/spring.log
是否可以每天轮换文件?我想每天创建一个新文件。
【问题讨论】:
-
是的。您使用的是哪个日志库?大多数都有轮换日志,您可以定期轮换或按文件大小轮换。
标签: spring spring-boot
我想配置 Spring 将日志消息写入文件:
logging.file=/my-logs/app.log
logging.path=/my-logs/spring.log
是否可以每天轮换文件?我想每天创建一个新文件。
【问题讨论】:
标签: spring spring-boot
来自doc:
日志文件在达到 10 MB 时会旋转,并且与控制台输出一样,默认情况下会记录 ERROR 级别、WARN 级别和 INFO 级别的消息。可以使用 logging.file.max-size 属性更改大小限制。除非设置了 logging.file.max-history 属性,否则之前轮换的文件将无限期存档。
另外,如果您只想登录到“/my-logs/app.log”,请删除 logging.path 并将 logging.file 更改为:
logging.file=/my-logs/app.log
编辑:关于每天轮换日志,Spring默认logger不支持,可以使用Logback。在 src/main/resources 中创建一个名为 logback-spring.xml 的文件,内容如下:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}[%M:%L] - %msg%n</pattern>
</encoder>
</appender>
<appender name="ROTATE_FILE_DAILY" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/my-logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>app-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}[%M:%L] - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROTATE_FILE_DAILY"/>
</root></configuration>
【讨论】: