我有一个像这样的简单附加器:
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>logs/error-%d</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/archive/error-%d.gz</fileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>[%date{ISO8601}] [%X{requestId}] [%logger{0}] %msg%ex%n</Pattern>
</encoder>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>MY_MARKER</marker>
</evaluator>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
它可以正确创建日志文件,但是它们的名称为logs/error-%d
,而不是logs/error-2019-04-19
。我还尝试使用模式logs/error-%d{yyyy-MM-dd}
,但它会产生相同的文件名,并且不会用当前日期替换日期模式。
如何强制Logback创建具有当前日期而不是占位符的文件?
答案 0 :(得分:1)
尝试删除<file>logs/error-%d</file>
。您可以使用以下格式:%d{yyyy-MM-dd}