getFileLogger static method
获取日志记录器
Implementation
static Logger getFileLogger(String content){
if(logger==null){//第一次获取logger
//从文件索引0开始
currentLogFileIndex=0;
LogUtil.e("$tag:getFileLogger:logDir:$logDir");
String filePath="$logDir/log$currentLogFileIndex.txt";
LogUtil.e("$tag:getFileLogger:filePath:$filePath");
logger=createLogger(filePath);
lastCheckFileIndexTime=DateTime.now().millisecondsSinceEpoch;
}else{//不是第一次
// 间隔10s检查一次换文件
int time = DateTime.now().millisecondsSinceEpoch-lastCheckFileIndexTime;
if (time > 1000 * 10) {
lastCheckFileIndexTime=DateTime.now().millisecondsSinceEpoch;
//根据总大小计算当前日志文件索引
//0,1,2,3,4
int fileIndex=totalLogSize~/maxLogFileSize;
LogUtil.e('$tag: [${DateTime.now()}] totalLogSize: $totalLogSize');
LogUtil.e('$tag: [${DateTime.now()}] fileIndex: $fileIndex');
LogUtil.e('$tag: [${DateTime.now()}] currentLogFileIndex: $currentLogFileIndex');
//超过范围,循环
if(fileIndex>=maxLogFiles){
totalLogSize=0;
fileIndex=0;
}
//文件索引发生变化,说明要换文件
if(fileIndex!=currentLogFileIndex){
currentLogFileIndex=fileIndex;
//先关闭
LogUtil.e('$tag: [${DateTime.now()}] close Logger');
logger!.close();
logger=null;
//重新创建
String filePath="$logDir/log$currentLogFileIndex.txt";
logger=createLogger(filePath);
}else{//文件索引没发生变化,不用换文件
}
}
}
//五个日志文件总大小累加
totalLogSize+=content.length;
return logger!;
}