如何在Logback中接受谨慎标志的RollingFileAppender
,并允许我指定日志文件的位置?
我尝试了以下操作,但据我所知,文档中的logback不支持file属性。还有另一种设置日志文件位置的方法吗?
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${MY_LOG_LOCATION_PROP}/logs/mylogfile.log</file>
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>mylogfile-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
答案 0 :(得分:5)
如果缺少file
属性,则将从fileNamePattern
的值推断出当前活动的日志文件。因此,file
属性不是必需的。同样重要的是,在审慎模式下,必须留空。
以下是fileNamePattern文档中的相关引用:
请注意RollingFileAppender中的文件属性(父级的 可以设置或省略TimeBasedRollingPolicy。通过设置 包含FileAppender的文件属性,你可以解耦 活动日志文件的位置以及存档日志的位置 文件。当前日志将始终以指定的文件为目标 由文件属性。它遵循当前活动的名称 日志文件不会随时间而改变。但是,如果您选择省略 文件属性,然后将为每个活动文件重新计算活动文件 period基于fileNamePattern的值。以下示例 应澄清这一点......
答案 1 :(得分:1)
您可以在fileNamePattern中包含路径:
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/myapp/mylogfile-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>