我的logback配置文件中有以下RollingFileappender。
<appender name="RollingFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>C:\Files\MyLogFile.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>C:\Files\MyLogFile.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{60} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
它会将文件作为MyLogFile.log写入上述目录,但不会附加FileNamePattern
中指定的日期。任何想法我如何设法在我的fileName中追加日期。感谢。
答案 0 :(得分:25)
请注意
的值file
中的RollingFileAppender
属性TimeBasedRollingPolicy
)可以设置或省略。通过设置 包含FileAppender
的文件属性,你可以解耦 活动日志文件的位置以及存档日志的位置 文件。当前日志将始终以指定的文件为目标 由file
属性。它遵循当前活动的名称 日志文件不会随时间而改变。但是,如果您选择省略file
属性,然后将为每个活动文件重新计算活动文件 期限基于fileNamePattern
。
在您的情况下,只需省略file
属性。
答案 1 :(得分:2)
例如,您可以使用以下配置。经过测试和工作:)
<!-- FILE APPENDER WITH PRUDENT MODE -->
<!-- IN PRUDENT MODE CANNOT BE SPECIFIED FILE, THIS PARAM IS OBTAINED FROM FILE NAME PATTERN -->
<!-- IN PRUDENT MODE ONLY TIME BASED ROLLING POLICY IS SUPPORTED - BECAUSE WE HAVE A LOG OF MULTIPLE JVM INSTANCES-->
<!-- SEE MORE AT http://logback.qos.ch/manual/appenders.html#prudentWithRolling -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logfile.path}-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${HOSTNAME} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>