Répondre aux questions du PO
A) Qu'est-ce que je ne comprends pas dans le fonctionnement de la console script de Google Apps en ce qui concerne l'impression afin que je puisse voir si mon code accomplit ce que je souhaite ?
Le code sur les fichiers .gs d'un projet Google Apps script s'exécute sur le serveur plutôt que sur le navigateur web. La façon d'enregistrer les messages était d'utiliser la fonction Journal de bord de la classe .
B) S'agit-il d'un problème de code ?
Comme l'indiquait le message d'erreur, le problème était que console
n'a pas été défini, mais aujourd'hui le même code produira une autre erreur :
Erreur de référence : "playerArray" n'est pas défini. (ligne 12, fichier "Code")
C'est parce que le playerArray est défini comme une variable locale. Déplacer la ligne hors de la fonction résoudra ce problème.
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
Maintenant que le code s'exécute sans lancer d'erreurs, au lieu de regarder la console du navigateur, nous devrions regarder le journal de Stackdriver. Depuis l'interface utilisateur de l'éditeur script de Google Apps, cliquez sur View > Enregistrement du Stackdriver .
Addendum
NOTES :
- À partir de mai 2022, les journaux seront disponibles dans la page des exécutions pendant 7 jours. De même, lors de l'exécution d'une fonction à partir de l'éditeur Apps script, les logs seront affichés en bas de l'écran.
- Stackdriver Logging a été renommé Cloud Logging.
Sur 2017 Google a libéré à tous scripts Stackdriver Logging et a ajouté la console de classe, donc inclure quelque chose comme. console.log('Hello world!')
ne déclenchera pas d'erreur mais le journal se trouvera sur le service de journalisation Stackdriver de Google Cloud Platform au lieu de la console du navigateur.
De Google Apps script Notes de version 2017
23 juin 2017
Journalisation de Stackdriver a été retiré de l'accès anticipé. Tous les scripts ont maintenant accès à la journalisation de Stackdriver.
De Journalisation > Journalisation Stackdriver
L'exemple suivant montre comment utiliser l'option console pour enregistrer les informations dans Stackdriver.
function measuringExecutionTime() {
// A simple INFO log message, using sprintf() formatting.
console.info('Timing the %s function (%d arguments)', 'myFunction', 1);
// Log a JSON object at a DEBUG level. The log is labeled
// with the message string in the log viewer, and the JSON content
// is displayed in the expanded log structure under "structPayload".
var parameters = {
isValid: true,
content: 'some string',
timestamp: new Date()
};
console.log({message: 'Function Input', initialData: parameters});
var label = 'myFunction() time'; // Labels the timing log entry.
console.time(label); // Starts the timer.
try {
myFunction(parameters); // Function to time.
} catch (e) {
// Logs an ERROR message.
console.error('myFunction() yielded an error: ' + e);
}
console.timeEnd(label); // Stops the timer, logs execution duration.
}