0
我正在使用android logback写入内部文件夹。android logback不会在基于时间的策略上滚动
我的记录器的配置是这样的:
<configuration debug='true'>
<property name="LOG_DIR" value="logs" />
<appender name="logcat" class="ch.qos.logback.classic.android.LogcatAppender">
<tagEncoder>
<pattern>%logger{12} %-5level</pattern>
</tagEncoder>
<encoder>
<pattern>%msg</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- active log file -->
<file>${LOG_DIR}/log.txt</file>
<encoder>
<pattern>%d{dd.MM HH:mm:ss.SSS} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/log-%d{yyyy-MM-dd-HH-mm}.txt</fileNamePattern>
<maxHistory>4</maxHistory>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="logcat"/>
<appender-ref ref="FILE" />
</root>
</configuration>
文件名模式 “对数%d {YYYY-MM-DD-HH-毫米} .TXT” 应当为每分钟创建一个新的日志文件(因为分钟是最小的单位)。 回滚被触发,但它失败和调试消息只是说:
|-WARN in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - RolloverFailure occurred. Deferring rollover
的log.txt文件编写正确的,但它的翻转失败。 我正在写入内部存储器,所以权限是没有问题的(我也有外部SD卡权限的写作)。
编辑:我只是测试它与外部sd作为日志目的地,它似乎工作。所以看起来logback可以将实际的日志文件写入内部存储,但不能翻转(可能是由于访问权限错误?)。
有没有人有一个想法如何解决这个问题?
thx。对于其他用户来说,最好的方式似乎是(如您在该问题中回答的): \t $ {DATA_DIR} /log/currentlog.txt 作为当前日志以及翻转文件的位置东东。 –
stamanuel
['$ {DATA_DIR}'](https://github.com/tony19/logback-android/issues/110#issuecomment-196305259)是'/ data/data//files的特殊变量'。设置'LOG_DIR'将有效地产生相同的结果。 –
2016-04-27 07:27:46