code: def save_log(gpu_ci_mode=False):
      """
      put the log into a pandas dataframe
      """
  
      c = 1
      cadena = []
      subcadena = []
      countPass = 0
      countCrash = 0
  
      for x in HANDLER.log:
          if c < 17:
              subcadena.append(x.msg)
              c = c + 1
          else:
              c = 1
              cadena.append(subcadena)
              subcadena = []
              subcadena.append(x.msg)
              c = c + 1
      print()
      cadena.append(subcadena)
  
      # If it didn't run any test (probably some were skipped)
      # then return success
      if cadena == [[]]:
          return True, []
  
      df = pd.DataFrame(
          cadena,
          columns=[
              "QueryID",
              "TimeStamp",
              "TestGroup",
              "InputType",
              "Query",
              "Result",
              "Error",
              "Branch",
              "CommitHash",
              "nRals",
              "nGPUs",
              "DataDirectory",
              "TestId",
              "LoadingTime",
              "EngineTotalTime",
              "TotalTime",
          ],
      )
  
      total = df.shape[0]
  
      countPass = df[df.Result == 1].count()["Result"]
  
      df1 = df[
          [
              "QueryID",
              "TimeStamp",
              "TestGroup",
              "InputType",
              "Query",
              "Result",
              "Error",
              "Branch",
              "CommitHash",
              "nRals",
              "nGPUs",
              "DataDirectory",
              "LoadingTime",
              "EngineTotalTime",
              "TotalTime",
          ]
      ].copy()
  
      create_summary_detail(df, gpu_ci_mode)
  
      printSummary(countPass, countCrash, total, gpu_ci_mode)
  
      if not gpu_ci_mode:
          saveLogInFile(df1)
  
          saveLog = False
          if "saveLog" in Settings.data["RunSettings"]:
              saveLog = Settings.data["RunSettings"]["saveLog"]
  
          print("saveLog = " + str(saveLog))
  
          # TODO william kharoly felipe we should try to enable and use
          # this function in the future
          # result, error_msgs = verify_prev_google_sheet_results(df1)
          result, error_msgs = True, []
  
          if result is True and saveLog == "true":
              saving_google_sheet_results(df1)
      else:
          if countPass < total:
              result, error_msgs = False, []
          else:
              result, error_msgs = True, []
  
      loggingClose(name)
      return result, error_msgs
  
imports: import json
  import logging
  import os
  import re
  import time
  import yaml
  import numpy
  import pandas
  import blazingsql
  from blazingsql import DataType
  from BlazingLogging import loggingHandler
  from Configuration import ExecutionMode
  from Configuration import Settings
  from DataBase import createSchema
label_desc: Use image node_id 19 for calling a global function with example usage: save_log(gpu_ci_mode) and returns: result,  error_msgs, True,  list