【问题标题】:Add datetime to log file name将日期时间添加到日志文件名
【发布时间】:2019-09-26 01:59:20
【问题描述】:

我有一些日志要写入 spring-boot 微服务中的文件。

在我的“application.yml”中,下面的行运行良好。但我也想在文件名中添加日期和时间。我该怎么做?

logging:
  file: logs/${spring.application.name}.log

理想情况下,我希望文件名是这样的:

logs/spring-boot-application_YYYY_MM_DD_HH_MM

【问题讨论】:

    标签: spring-boot logging slf4j


    【解决方案1】:

    这里已经回答了一个类似的问题:How to include date in log file's name with Spring Boot / slf4j?

    基本上,如果您想更好地控制日志设置,您应该在 src/main/resources 下拥有自己的 logback.xml,并配置类似于以下内容的命名格式:

    <FileNamePattern>LogFile.%d{yyyy-MM-dd}.log</FileNamePattern>
    

    【讨论】:

    • 这很有帮助。谢谢!
    【解决方案2】:

    如果您使用的是 spring-boot ,您可以轻松地在 application.ymlapplication.properties 中指定它并配置 logback xml 以启用 Rolling File Appender 为:

    spring:
    logging:
      file: logs/dev_app.log
      pattern:
        console: "%d %-5level %logger : %msg%n"
        file: "%d %-5level [%thread] %logger : %msg%n"
      level:
        org.springframework.web: DEBUG
        guru.springframework.controllers: DEBUG
        org.hibernate: DEBUG
    

    并为文件指定基于时间的滚动策略:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <include resource="org/springframework/boot/logging/logback/base.xml"/>
    
      <appender name="ROLLIN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    
            <!-- daily rollover -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
    
        </rollingPolicy>
      </appender>
    
      <root level="INFO">
        <appender-ref ref="ROLLIN" />
      </root>
    
      <logger name="org.springframework.web" level="INFO"/>
    </configuration>
    

    Doc Official Spring Doc

    【讨论】:

    • @GunboldBoldsaikhan 很高兴为您提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多