getFileLogger static method

Logger getFileLogger(
  1. String content
)

获取日志记录器

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!;
}