Rus*_*ssR 15 logging v8 google-apps-script google-cloud-stackdriver
使用 Rhino,日志对话框(“command + Enter”或“视图”菜单中的日志)会立即显示日志。但是,对于使用 V8 引擎的测试项目,即使加载最简单的日志也需要 10-20 秒,并显示消息“正在等待日志,请稍候...”
“Logger.log”或“console.log”加载日志都很慢。有没有其他人遇到同样类型的缓慢?这是新引擎的预期吗?
先感谢您!
这是我用于测试的基本功能:
function logTest() {
Logger.log("log test");
}
Run Code Online (Sandbox Code Playgroud)
我注意到了同样的事情,并且已经有问题了。
我一直在使用下面的脚本。这可能不是防弹的,但对我来说,这比等待日志要好。我还注意到,如果您遇到错误并转到“查看执行”,那么即使在我们将它们放入脚本编辑器之前,这些日志现在似乎已经出现了。
问题链接:https : //issuetracker.google.com/issues/149519063
function MyLogger(s,t=5) {
const cs=CacheService.getScriptCache();
const cached=cs.get("Logger");
const ts=Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "yy/MM/dd HH:mm:ss")
if(cached) {
var v=Utilities.formatString('%s<br />[%s] - %s',cached,ts,s);
}else{
var v=Utilities.formatString('[%s] - %s',ts,s);
}
cs.put("Logger",v,t);
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(v), 'My Logger');
}
Run Code Online (Sandbox Code Playgroud)
MyLogger() 的另一个版本:
function MyLogger(s,d=true,w=800,h=400,t=5) {
const cs=CacheService.getScriptCache();
const cached=cs.get("Logger");
const ts=Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "MM|dd|HH:mm:ss")
if(cached) {
var v=Utilities.formatString('%s<br />[%s] - %s',cached,ts,s);
}else{
var v=Utilities.formatString('[%s] - %s',ts,s);
}
cs.put("Logger",v,t);
//allows logging without displaying.
if(d) {
const a='<br /><input type="button" value="Exit" onClick="google.script.host.close();" />';
const b='<br /><input type="button" value="Exit" onClick="google.script.host.close();" /><br />';
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(b+v+a).setWidth(w).setHeight(h), 'My Logger');
}
}
Run Code Online (Sandbox Code Playgroud)