ここで、問題の説明を少し調整します。Logger は、スクリプトの所有者 (たまたまログに記録されている) に対してのみ機能します。再確認しましたが、これは実際に動作です。テスト アカウントで別のログイン ユーザーとして単純な Web アプリにアクセスすることを確認しましたが、Logger はそのアカウントでも機能しませんでした。
これは、実際には現在ロガーの既知の制限です。
ロガーは、他の人がコードにアクセスしているときではなく、コードを書いているときのデバッグに役立ちます。ロガー情報も、異なる実行間で保持されません。
実際には、ログ ステートメントを単純なファイルに書き込むことになります。タイムスタンプなどの小さなものを追加すると、これをより堅牢にすることができます。必要に応じて、例外ログと有効なユーザー情報を追加することもできます。
これは、読者に残されているいくつかの演習で、私が通常これをどのように設定するかについてのいくつかのスニペットです.
一度実行する関数 -
function initLog() {
//add check to see if log already exists so you don't init multiple times
var logfile = DocsList.createFile('Log file for my script','') ;
ScriptProperties.setProperty('LogFile', logfile.getId());
logfile.getId();
}
コードのどこからでも呼び出すことができるユーティリティ関数 -
function logMsg(msg){
//add more checks here to init log if its not already done
var logfile = DocsList.getFileById(ScriptProperties.getProperty('LogFile'));
logfile.append(new Date().toString() + ' - ' + msg + '\n');
}
これがどのように機能するかを示すための簡単な構成のハーネス -
function logTests(){
initLog();
logMsg('hello world');
logMsg('test message');
}
そして、これがどのように見えるかです。お役に立てれば。
