質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1711閲覧

【Google Apps Script】ログ表示がずっと同じものを表示し、Logger.logの内容を反映しない

Zuian

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/02/10 15:20

編集2020/02/11 13:23

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
はじめまして。初投稿のため情報不足やご無礼をご容赦ください。
グーグルのGASで家計簿システムを作っています。スプレッドシートをDBに見立て、別シートでデータを吐き出したり、変更したりするような形で仕上げています。その中で、これまでは問題なくログが出ていたのですが、突然以下のログしか表示されなくなってしまいました。
[20-02-10 07:01:22:252 PST] 2020/02/10
[20-02-10 07:01:22:253 PST] Sheet
[20-02-10 07:01:22:254 PST] 2020/02/09
[20-02-10 07:01:22:254 PST] Sheet
~
[20-02-10 07:01:22:498 PST] 2019/07/01
[20-02-10 07:01:22:499 PST] Sheet
[20-02-10 07:01:22:499 PST] false

発生している問題・エラーメッセージ

通常、Logger.logを付けている変数の中身が見られると思いますが、これはコードを消しても表示されてしまいます。このような症状はよくあることなのでしょうか
宜しくお願いします

エラーメッセージ

該当のソースコード

Javascript
ソースコード
function DBUpdate() {
// 現在アクティブなスプレッドシートを取得
var dryrunSheet = SpreadsheetApp.openById("xxx");
var activeSheet = dryrunSheet.getSheetByName("シート名");
// DBシートを取得
const SHEET_ID = "xxx";
var DBSS = SpreadsheetApp.openById(SHEET_ID);
var DBSheet = DBSS.getSheetByName("DB")
var newvalues = activeSheet.getRange("A3:N3").getValues();
var deletionData = activeSheet.getRange("B4:N6");
var newData = [];
for( var i = 0; i < 14; i++ ){
newData.push(newvalues[0][i]);
}
Update(DBSheet, newData);
Deletion(deletionData)
}

// 行の更新を行う
function Update(sheet, data) {
var row = findRow(sheet, data[0]);
Logger.log(row)
// 行を見つけて更新
sheet.getRange(row, 1, 1, data.length).setValues([data]);
}

// 行番号を返す
function findRow(sheet, date) {
var searchDate = Utilities.formatDate(new Date(date), 'Asia/Tokyo','yyyy/MM/dd');
var values = sheet.getDataRange().getValues();
for (var i = values.length - 1; i > 0; i--) {
var dataDate = Utilities.formatDate(new Date(values[i][0]), 'Asia/Tokyo','yyyy/MM/dd');
if (dataDate == searchDate) {
return i + 1; // 配列のキーは0から始まり、行数は1から始まるのでズレを直す
}
}
return false;
}

function Deletion(Data){
Data.clearContent();
}

試したこと

コードの削除、ログ表示関数の場所・変数変更

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/02/11 01:11

「突然以下のログしか表示されなくなってしまいました」のが問題なのでしょうか。それとも「Logger.logを付けている変数の中身が見られると思いますが、これはコードを消しても表示されてしまいます」が問題なのでしょうか。(コードを消しても表示される、と言う意味が良く分かりませんが) あと、コードのマークダウン(```コード```)がうまくいっていないようですのでご確認ください。
Zuian

2020/02/11 13:21

ありがとうございます。 仰っている両方とも問題です。正確には、コードを消しても上記のログが表示されてしまっています。別プロジェクトで上記のコードを実行すると全く正常な形で実行終了するのですが。。。
guest

回答2

0

ベストアンサー

出してないログは出ないのが期待される動作です。

Loggerは上から順に古いログが出るはずなのに中略の波線の後が過去になってます。コピペではないということ。

スクリプトエディタの検索でLoggerを検索するとプロジェクト内の全てが検索できるので何らかのトリガーを仕掛けている(onEditとか)関数が余計なログを出してないか見てください。

投稿2020/02/11 06:38

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuian

2020/02/11 14:11

ありがとうございます。 Loggerを全て削除し、検索をかけてまったくない状態を作り出したのですが、ログが表示されてしまいます。 また、今回の件で一つ怪しいと思っているのですが、同じプロジェクト内の別ファイルで同じ名前のメソッドがある場合(違う目的で使っているため、引数は別)、これは干渉する可能性はありますでしょうか。対策などございますでしょうか。
papinianus

2020/02/11 14:26

同じ名前の関数は 1 つしか動作しません、少なくとも過去の質問で、引数が同じである場合に、意図しない方が動作していたことで予想しない挙動となった質問に回答したことがあります。 恐くて試したことないですが、引数が異なっていようと同じだと思います。順序は後勝ちっぽいですが(ソートしたときより後の名前のファイルのより下の方にかいてある関数が動作する仮定)これも検証はしてないです。そのようなことを検証しても得られるものがないので。 今回も関数名重複は想定しましたが、その場合でも「Logger を検索する」以上の対処がないため、この回答にしています。「Loggerを全て削除し、検索をかけてまったくない状態を作り出した」が本当であれば、同じ関数が別にあろうが、意図していないほうの関数が実行されても Logger は動作しないので、質問者様を信じる限りにおいて **干渉しません** 。 関数名が同じ場合の対処はありません。目的が違うのに同じ名前というのはおかしいです。別の名前にしてください。また、2/5 から V8 エンジンが利用できるようになり、デフォルト引数をおけるようになったので、オーバーロードのため複数個定義をする必要はありません。
Zuian

2020/02/12 13:50

ありがとうございます。よくよく調べた結果、やはりメソッド名が重複していることが原因でした。解決できました!!!
papinianus

2020/02/12 22:41

それは良かったです。回答を書いて自己解決でクローズしてください
guest

0

別ファイルで同じ名前のメソッドにしていたため、誤作動していた。メソッドごとに名前を変えて解決した。

投稿2020/02/16 15:49

Zuian

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問