現在Google Apps ScriptにてログファイルをGoogle Docsに出力するライブラリを作成しています。
logGene();
ライブラリはエラーが発生した時に原因の追求ができるように要所毎に設置してログを引数を記録するというものです。
しかし、問題がグローバル変数のfileCheck
とlogID
がうまく動いていないためか呼び出すたびにファイルが作成されるという自体に陥っています。
流れ
①ログファイルの作成←すでに作成済みの場合は作成しない。fileCheck
がfalse
の場合のみ。
②ログファイル作成済みのフラグを立てる
fileCheck=true
③ログファイルに調べたい引数data
を書き込む
ご協力お願い致します。
lang
1コード 2 3 4var fileCheck = '';//ファイルが作成済みの場合:1 5var logID = ''; //ログ出力先ファイルのID 6 7function test(){ 8var data=10; 9logGene(data,true); 10 11data=50; 12logGene(data,true); 13 14data=100; 15logGene(data,false); 16}; 17 18function logGene(data,write){//継続書込モード write=ture 19 Logger.log(data);//取得データログへ書き出し 20 var logData = Logger.getLog(); 21 22 //ログファイル作成日時の取得 23 var objDate =new Date(); 24 var y = objDate.getFullYear(); 25 var M = objDate.getMonth()+1; 26 var d = objDate.getDate(); 27 var h = objDate.getHours(); 28 var m = objDate.getMinutes(); 29 var s = objDate.getSeconds(); 30 var date = y+"/"+M+"/"+d+" "+h+":"+m+":"+s; 31//ログファイルを作成している場合 true 32//ログファイルを作成していない場合 false 33 if (fileCheck !== true){//作成していない場合実行 34 var createFile = DocumentApp.create('log'+'('+date+')');//ファイルの作成 35 var fileCheck = true;//ログファイルを作成済みなので フラグとして true 36 } 37 var logID = createFile.getId();//作成したログファイルのID取得 38 var logFile = DocumentApp.openById(logID); 39 } 40 var bodyText = logFile.getBody().getText;//ログ出力先テキストの取得 41 logFile.getBody().setText(logData);//ログ出力先テキストの最後にテキストを追加 42 Logger.clear(); 43 return; 44 45}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。