日志文件被覆盖了
yjtacx opened this issue · 6 comments
你好,我发现App启动时,偶尔会出现日志文件内容被覆盖掉了,而不是追加。我设置的是最多一个备份文件。这个什么原因呢?
你好,我发现App启动时,偶尔会出现日志文件内容被覆盖掉了,而不是追加。我设置的是最多一个备份文件。这个什么原因呢?
@yjtacx 请问是怎么设置的?暂时没听说过这个问题
下面是我的logger的创建方法,然后我新建了两个单例类,主要是为了写入两个不同的文件。
public static Logger getLogger(String logFileName, String tag, long debugMaxSize, long releaseMaxSize) {
Printer androidPrinter = new AndroidPrinter();
Printer filePrinter = new FilePrinter // Printer that print(save) the log to file
.Builder(getFileDir()) // Specify the directory path of log file(s)
.fileNameGenerator(new ChangelessFileNameGenerator(String.format("%s.log", logFileName))) // Default: ChangelessFileNameGenerator("log")
.backupStrategy(new FileSizeBackupStrategy2(BuildConfig.DEBUG ? debugMaxSize : releaseMaxSize, 1)) // Default: FileSizeBackupStrategy(1024 * 1024)
.flattener(new Flattener2() {
@Override
public CharSequence flatten(long timeMillis, int logLevel, String tag, String message) {
return timestampToString(timeMillis) + '|' + LogLevel.getShortLevelName(logLevel)
// + '|' + tag
+ '|' + message;
}
})
.build();
return XLog.tag(tag).printers(androidPrinter, filePrinter).build();
}
现象是这样的,比如我的两个日志文件:a.log和b.log内部的日志变成从同一时刻开始了的,之前的很多日志都丢了,而b.log的备份文件还在。
检查了下,没有自动清理任务,就是new FileSizeBackupStrategy2(BuildConfig.DEBUG ? debugMaxSize : releaseMaxSize, 1) 这个设置,这个我这也很难复现,只是有几个用户复现了,复现的情况基本都是bak.1文件存在,剩余的.log的文件被覆盖重写了。