forma eficiente de mostrar logs en google apps script

Logging rápido en Google Apps Script


De un tiempo a esta parte ando utilizando muchísimo Google Apps Scrips (GAS a partir de ahora) para automatizar muchas de las gestiones internas que tengo en el centro y poder ahorrar tiempo que poder invertir en lo que realmente importa… mi alumnado.

Si hay algo que me saca de quicio es la lentitud que muestra GAS cuando hacemos uso de la clase Logger que nos ofrece Google y que se considera es el método canónico (y adecuado) para realizar anotaciones en el log.

Según como tengan el día los servidores de Mountain View puede tardar una eternidad (llegando a rondar los 5 minutos el mostrar algo en la consola).

Como no es de recibo, he optado por una solución alternativa que espero te resulte de utilidad…

… y el truco no es otro que utilizar una hoja de Google Sheets en la que ir anotando la información gracias a la siguiente función

const log =(...data)=>{
  data.unshift(new Date());
  SpreadsheetApp.getActive().getSheetByName("log").appendRow(data);
}

Donde:

  • log es el nombre de la hoja donde realizaremos las anotaciones
  • el …data como parámetro te permite indicar tantos valores (cada uno será anotado en una columna diferente de la hoja log) como consideres oportuno
  • por simplicidad (en esta versión) se considera que existe dicha hoja no creándola en caso de no existir (sería una funcionalidad interesante pero ha sido descartada por no complicar el código, si te apetece discutir o conocer una posible implementación, coméntalo en esta entrada y lo hablamos 👍)
  • el script donde uso esta función log(…) pertenece a la macro de una hoja de cálculos pero podría ser usado igualmente en un Google Docs abriendo la hoja de cálculo en la que se realizarán las anotaciones (nuevamente no ha sido incluido en el ejemplo y podemos hablarlo igualmente 😅)

Y a partir de este momento, su uso es tan sencillo como lanzar un

log("Fin de la ejecución del script");

O bien un 

log("ERROR", "Fallo calamitoso");

si quieres contar con dos columnas (quien dice dos, dice tres o cinco… depende del número de parámetros que pases a la función log(…) 😉

Dando como resultado (en la hoja log de nuestro Google Sheets) 

Conclusión

Función que permite acelerar el tiempo que tarda en mostrar Google Apps Script la información de log en nuestros programas.

Y tú…

  • ¿Qué método usas para escribir en los logs de Google Apps Script?
  • ¿Suele GAS tardar en mostrar los resultados de log?
  • ¿Te parece interesante incluir la creación de la hoja logs de no existir?
  • ¿Implementamos el log para Google Docs?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .