OPの質問に答える
A)コードが希望どおりに機能しているかどうかを確認できるように、印刷に関してGoogle Apps Scriptコンソールがどのように機能するかについて理解していないことは何ですか?
Google Apps Scriptプロジェクトの.gsファイルのコードは、ウェブブラウザではなくサーバーで実行されます。メッセージをログに記録する方法は、クラスロガーを使用することでした。
B)コードに問題がありますか?
エラーメッセージが言ったように、問題はconsole
定義されていないことでしたが、最近は同じコードが他のエラーをスローします:
ReferenceError:「playerArray」が定義されていません。(12行目、ファイル「コード」)
これは、playerArrayがローカル変数として定義されているためです。関数の外に行を移動すると、これが解決されます。
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
エラーをスローせずにコードが実行されるようになったので、代わりにブラウザコンソールを確認するために、StackdriverLoggingを確認する必要があります。Google Apps ScriptエディターのUIから、[表示]>[StackdriverLogging ]をクリックします。
補遺
2017年、GoogleはすべてのスクリプトにStackdriver Loggingをリリースし、Class Consoleを追加したため、のようなものを含めるとconsole.log('Hello world!')
エラーはスローされませんが、ログはブラウザコンソールではなくGoogle Cloud Platform StackdriverLoggingServiceに記録されます。
GoogleAppsScriptリリースノート2017より
2017年6月23日
StackdriverLoggingは早期アクセスから移動されました。すべてのスクリプトがStackdriverログにアクセスできるようになりました。
ロギング>Stackdriverロギングから
次の例は、コンソールサービスを使用して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.
}