【问题标题】:Create new Spring log file every day每天创建新的 Spring 日志文件
【发布时间】:2020-02-25 11:15:21
【问题描述】:

我想配置 Spring 将日志消息写入文件:

logging.file=/my-logs/app.log
logging.path=/my-logs/spring.log

是否可以每天轮换文件?我想每天创建一个新文件。

【问题讨论】:

  • 是的。您使用的是哪个日志库?大多数都有轮换日志,您可以定期轮换或按文件大小轮换。

标签: spring spring-boot


【解决方案1】:

来自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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    相关资源
    最近更新 更多