code: private void doPrintln(long timeMillis, int logLevel, String tag, String msg) {
      String lastFileName = writer.getLastFileName();
      if (lastFileName == null || fileNameGenerator.isFileNameChangeable()) {
        String newFileName = fileNameGenerator.generateFileName(logLevel, System.currentTimeMillis());
        if (newFileName == null || newFileName.trim().length() == 0) {
          throw new IllegalArgumentException("File name should not be empty.");
        }
        if (!newFileName.equals(lastFileName)) {
          if (writer.isOpened()) {
            writer.close();
          }
          cleanLogFilesIfNecessary();
          if (!writer.open(newFileName)) {
            return;
          }
          lastFileName = newFileName;
        }
      }
  
      File lastFile = writer.getFile();
      if (backupStrategy.shouldBackup(lastFile)) {
        // Backup the log file, and create a new log file.
        writer.close();
        File backupFile = new File(folderPath, lastFileName + ".bak");
        if (backupFile.exists()) {
          backupFile.delete();
        }
        lastFile.renameTo(backupFile);
        if (!writer.open(lastFileName)) {
          return;
        }
      }
      String flattenedLog = flattener.flatten(timeMillis, logLevel, tag, msg).toString();
      writer.appendLog(flattenedLog);
    }
docs: Do the real job of writing log to file.