当前位置: 首页 > 知识库问答 >
问题:

如何调试Google Apps脚本(也就是logger.log登录到哪里?)

方恺
2023-03-14

因此,每当调用OneDit函数时,我试图使用Logger.log方法记录一些数据,但这似乎也只在从脚本编辑器运行时才起作用。当我从脚本编辑器运行它时,我可以通过转到视图->logs...查看日志

我希望能够看到事件实际执行时的日志,但我想不通。

我怎么调试这些东西?

共有1个答案

邢献
2023-03-14

更新:

正如这份答复中所写的那样,

>

  • StackDriver日志记录是现在首选的日志记录方法。

    但是,我不得不停止使用传递到onEdit函数中的事件参数--您无法通过执行run->onEdit来模拟这种情况。我需要从电子表格中获得的任何信息,比如选择了哪个单元格,等等,我必须手动计算出来。

    不管怎样,答案很长,但我最终还是想通了。

    编辑:

    function onOpen() {
      setCheckboxes();
    };
    
    function setCheckboxes() {
      var checklist = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("checklist");
      var checklist_data_range = checklist.getDataRange();
      var checklist_num_rows = checklist_data_range.getNumRows();
      Logger.log("checklist num rows: " + checklist_num_rows);
    
      var coredata = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("core_data");
      var coredata_data_range = coredata.getDataRange();
    
      for(var i = 0 ; i < checklist_num_rows-1; i++) {
        var split = checklist_data_range.getCell(i+2, 3).getValue().split(" || ");
        var item_id = split[split.length - 1];
        if(item_id != "") {
          item_id = parseInt(item_id);
          Logger.log("setting value at ("+(i+2)+",2) to " + coredata_data_range.getCell(item_id+1, 3).getValue());
          checklist_data_range.getCell(i+2,2).setValue(coredata_data_range.getCell(item_id+1, 3).getValue());
        }
      }
    }
    
    function onEdit() {
      Logger.log("TESTING TESTING ON EDIT");
      var active_sheet = SpreadsheetApp.getActiveSheet();
      if(active_sheet.getName() == "checklist") {
        var active_range = SpreadsheetApp.getActiveSheet().getActiveRange();
        Logger.log("active_range: " + active_range);
        Logger.log("active range col: " + active_range.getColumn() + "active range row: " + active_range.getRow());
        Logger.log("active_range.value: " + active_range.getCell(1, 1).getValue());
        Logger.log("active_range. colidx: " + active_range.getColumnIndex());
        if(active_range.getCell(1,1).getValue() == "?" || active_range.getCell(1,1).getValue() == "?") {
          Logger.log("made it!");
          var next_cell = active_sheet.getRange(active_range.getRow(), active_range.getColumn()+1, 1, 1).getCell(1,1);
          var val = next_cell.getValue();
          Logger.log("val: " + val);
          var splits = val.split(" || ");
          var item_id = splits[splits.length-1];
          Logger.log("item_id: " + item_id);
    
          var core_data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("core_data");
          var sheet_data_range = core_data.getDataRange();
          var num_rows = sheet_data_range.getNumRows();
          var sheet_values = sheet_data_range.getValues();
          Logger.log("num_rows: " + num_rows);
    
          for(var i = 0; i < num_rows; i++) {
            Logger.log("sheet_values[" + (i) + "][" + (8) + "] = " + sheet_values[i][8]);
            if(sheet_values[i][8] == item_id) {
              Logger.log("found it! tyring to set it...");
              sheet_data_range.getCell(i+1, 2+1).setValue(active_range.getCell(1,1).getValue());
            }
          }
    
        }
      }
    
      setCheckboxes();
    };
    

  •  类似资料:
    • 我有一个Python Spark程序,我使用运行该程序。我想把日志记录语句放进去。 我想使用Spark使用的相同记录器,以便日志消息以相同的格式显示,并且级别由相同的配置文件控制。我该怎么做? 我尝试将语句放入代码中,并从。在这两种情况下,我都能看到Spark的日志消息,但我看不到。我一直在看Python日志文档,但没有从中找到答案。 不确定这是否是特定于提交给Spark的脚本,或者只是我不了解日

    • 我有一个基本的Groovy脚本,我希望尽可能简单地创建日志。我希望消息转到标准输出,以及一个日志文件,日志文件中的每个条目都有一个时间戳。 我不能使用@Log符号,因为它是一个脚本,我没有要注入的类。否则我认为这将是理想的。

    • 问题内容: 另一个夜晚,另一个问题! 我创建了一个登录页面,如果密码为纯文本形式,则可以正常运行。 我的问题是我的注册表单使用password_hash向表输入加密的密码。 我当前的脚本如下。 注册脚本 登录脚本 我对此有两个问题: 我应该在哪里放置登录脚本? 不必键入多个即可在“我的帐户”页面上显示用户详细信息,我如何利用已阅读的方法? 提前谢谢了, 西里尔·海象 问题答案: *阅读代码 *之前

    • 问题内容: 您如何调试 PHP 脚本? 我知道诸如使用错误报告之类的基本调试。 PHPEclipse中 的断点调试也非常有用。 在phpStorm或任何其他IDE中进行调试的 最佳方式 (快速简便)是什么? 问题答案: 尝试使用EclipsePDT来设置一个具有上述调试功能的Eclipse环境。与旧方法var_dump相比,调试代码的能力是一种更好的方法,它可以在各个点进行打印并在各个位置进行打印

    • 问题内容: 我能够编写脚本以将我的电子邮件地址添加到email元素中。但是一旦通过脚本单击“下一步”,Google就会使用ajax将该电子邮件元素动态替换为密码元素。这是我遇到的问题,无法在该元素中提供密码并且无法登录。 网址:https://accounts.google.com/signin/v2/identifier?flowName = GlifWebSignIn&flowEntry =

    • 本文向大家介绍PowerShell脚本开发尝试登录SQL Server,包括了PowerShell脚本开发尝试登录SQL Server的使用技巧和注意事项,需要的朋友参考一下 前三篇文章中创建了PSNet程序集,其中包含了对指定IP进行端口扫描,收发TCP消息包和收发UDP消息包的相关功能,作为这是最基本的对网络情况的最基本检测,后续的文章将会对此程序集进行不断的扩充使其包含更全面的功能。但是光有