Note that the file property in RollingFileAppender (the parent of TimeBasedRollingPolicy) can be either set or omitted. By setting the file property of the containing FileAppender, you can decouple the location of the active log file and the location of the archived log files. The current logs will be always targeted at the file specified by the file property. It follows that the name of the currently active log file will not change over time. However, if you choose to omit the file property, then the active file will be computed anew for each period based on the value of fileNamePattern.
FileAppender
包含的属性 file
,系统实时生成的日志和根据日期生成的日志可以存储在不同的目录文件下。在这种情况下,系统实时生成的日志内容都会记录在 file
属性指定的文件中。因此,该日志文件名称不会随着时间的移动而更改。 FileAppender
包含的属性 file
,活动文件的名字会根据 fileNamePattern
的值,每隔一段时间改变一次,即每隔一段时间会生成一个日志文件。 <appender name="emergencyLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 写入日志内容的文件名称(目录) --> <File>log/check.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 --> <fileNamePattern>log/check.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 每产生一个日志文件,该日志文件的保存期限为30天 --> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <!-- pattern节点,用来设置日志的输入格式 --> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger [%msg]%n</pattern> <!-- 记录日志的编码:此处设置字符集 - --> <charset>UTF-8</charset> </encoder> </appender> 复制代码
以2019-06-04输出的日志为例,来解释下设置、忽略File属性的不同。
log/check.log
中。 check.log
会被重命名为 log/check.2019-06-04.log
。 log/check.2019-06-05.log
、 log/check.2019-06-06.log
等日志。 log/check.2019-06-04.log log/check.2019-06-04.log