Centraliser la journalisation des erreurs de Google Apps Script dans Google Sheets

Dans le développement de scripts pour Google Apps Script, le suivi des erreurs et des exceptions est crucial pour maintenir des applications fiables et performantes.

Bien que Google Apps Script offre des outils intégrés pour le débogage, centraliser la journalisation des erreurs dans une feuille Google Sheets peut apporter une visibilité et une organisation supplémentaires, permettant une analyse et une résolution plus efficaces des problèmes.

Dans cet article, nous explorons comment mettre en place un tel système de journalisation.

Pourquoi centraliser la journalisation des erreurs ?

La centralisation des logs d’erreurs offre plusieurs avantages :

  • Accessibilité : Les logs sont accessibles depuis n’importe quel appareil pouvant ouvrir Google Sheets, sans nécessiter l’accès à l’éditeur de script.
  • Collaboration : Les membres de l’équipe peuvent consulter et mettre à jour le statut des erreurs en temps réel, facilitant la collaboration.
  • Historique des erreurs : Conserver un historique des erreurs peut aider à identifier les problèmes récurrents et les tendances.

Mise en place de la journalisation

Étape 1 : Préparer la feuille de calcul

Créez une feuille Google Sheets dédiée à la journalisation des erreurs avec des en-têtes appropriés comme Horodatage, Nom du script, Nom de la fonction,Message d'erreur, et Stack Trace.

Étape 2 : Créer la fonction de journalisation

Ouvrez l’éditeur de script dans un de vos projets (via Extensions > Apps Script) et ajoutez le code suivant. Ce code définit une fonction logError que vous pourrez appeler de n’importe où dans votre projet pour enregistrer les erreurs dans la feuille de calcul que vous avez préparée.

const SHEET_ID = 'ID_DE_VOTRE_FEUILLE'; // Remplacez ID_DE_VOTRE_FEUILLE par l'ID réel de votre feuille de calcul Google Sheets

/**
 * Enregistre une erreur dans la feuille de calcul Google Sheets dédiée.
 *
 * @param {Error} error L'objet Error capturé
 * @param {string} scriptName Le nom du script où l'erreur s'est produite
 * @param {string} functionName Le nom de la fonction où l'erreur s'est produite
 */
function logError(error, scriptName, functionName) {
  try {
    var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName('Journal des Erreurs');
    var timestamp = new Date();
    var errorMessage = error.message;
    var stackTrace = error.stack;
    sheet.appendRow([timestamp, scriptName, functionName, errorMessage, stackTrace]);
  } catch (loggingError) {
    console.error("Erreur lors de la journalisation : ", loggingError);
  }
}

Étape 3 : Intégration dans vos scripts

Utilisez la fonction logError dans les blocs try-catch de vos scripts pour enregistrer automatiquement les erreurs dans la feuille de calcul.

function maFonctionExemple() {
  try {
    // Votre logique de script ici...
    throw new Error('Ceci est une erreur de test'); // Exemple d'erreur
  } catch (error) {
    logError(error, 'NomDeMonScript', 'maFonctionExemple');
  }
}

Bonnes pratiques

  • Sécurité : Assurez-vous que la feuille de calcul est partagée uniquement avec les personnes ayant besoin d’accéder aux logs d’erreurs.
  • Maintenance : Nettoyez régulièrement la feuille de calcul pour éviter qu’elle ne devienne trop volumineuse.

Conclusion

Centraliser la journalisation des erreurs de Google Apps Script dans Google Sheets est une stratégie efficace pour améliorer la maintenance et le débogage de vos applications. Cette approche non seulement facilite le suivi des erreurs mais aussi encourage une meilleure collaboration au sein de votre équipe.