添加日期 logback.xml

Adding date to logback.xml

我试图搜索它,但我一直在获取 ...IS_UNDEFINED 作为我的文件名。我只是想将当前日期附加到日志文件中。 logback.xml 文件的任何简单示例?

这是我最近的尝试:

<Properties>
  <property name="filePattern">log_${date:yyyy-MM-dd}.log</property>
</Properties>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <file>${application.home:-.}/logs/${filePattern}</file>
  <encoder>
    <pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
  </encoder>
</appender>

常规 FileAppender 不支持文件名模式, 所以你必须改用RollingFileAppender + TimeBasedRollingPolicy

RollingFileAppender extends FileAppender with the capability to rollover log files. For example, RollingFileAppender can log to a file named log.txt file and, once a certain condition is met, change its logging target to another file.

TimeBasedRollingPolicy is both easy to configure and quite powerful. It allows the roll over to be made based on time. It is possible to specify that the roll over occur once per day, per week or per month.

像这样:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${application.home:-.}/logs/log_.%d{yyyy-MM-dd}.log</fileNamePattern>
      </rollingPolicy>
  <encoder>
    <pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
  </encoder>
</appender>

我是这样想的:

  <timestamp key="timestamp" datePattern="yyyyMMdd"/>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${application.home:-.}/logs/log_${timestamp}.log</file>
    <encoder>
      <pattern>%date [%level] - %message%n%xException</pattern>
    </encoder>
  </appender>