我已经实现了具有持久性的Channel API。当我创建一个频道并连接套接字(这是在真正的应用程序上,而不是本地dev_appserver)时,Firebug会发送日志消息。我想关闭这些以便我可以看到我的OWN日志,但无法找到有关如何禁用Channel API控制台日志记录的任何文档。
我可能做的与大多数情况不同的是,我正在连接跨域... ... Channel API支持(注意流中的第一条消息......如果你可以查看该图片)
有人知道吗?
我终于意识到我的代码创建了两个通道,并试图同时打开/连接它们......而 就是为什么我收到了大量的消息。我不是故意这样做的(我知道规则:https://developers.google.com/appengine/docs/python/channel/overview#Caveats)......这是一个错误......一旦我修复它,消息就会恢复到可管理的水平。
耶
答案 0 :(得分:1)
在开发服务器上,当使用ChannelAPI时,它实质上会降级为轮询实现,而不是使用Comet / long-polling。因此,在您的调试器中,您会看到向服务器发出的无休止的HTTP请求,以便持续且有条不紊地检查更新。
从本质上讲,这些只是AJAX请求,或者像Firebug想要的那样,XMLHttpRequests。
由于您的浏览器负责发出这些请求,因此禁用它们的唯一方法是单击Firebug中“控制台”上的小箭头,并取消选中记录XMLHttpRequests的选项。
当然,这也会禁用所有其他XMLHttpRequests的日志记录。但是,为一个安静,表现良好的JavaScript控制台的清晰度和宁静付出的代价是一个很小的代价。
有关如何充分利用Firebug的更多有用信息,请参阅Firebug Tips and Tricks。
注意:这适用于Python SDK的用户以及Java SDK。 (或Go SDK,假设它具有等效的ChannelAPI)。这不仅限于Python Appengine。
<强>更新强>
来自getFirebug:
创建一个时间戳,可以与HTTP流量时间一起使用来测量某段代码的执行时间。
在Firebug 1.8.0中发布了console.timeStamp方法。上述相同的技术也可以覆盖此Firebug日志记录方法。
console.timeStamp("This is the type of console logging statement that Google is using!");
以上日志记录语句将生成橄榄文本。可以使用上一节中描述的相同技术禁用此方法。
但是,Google会在闭包中加载控制台对象,这意味着,一旦初始化了Google的代码,ChannelAPI对象就拥有了自己的控制台对象副本。
为了禁用console.timeStamp,需要在其他任何加载或运行之前将其作为第一个动作禁用它。换句话说,我们需要确保Google只能使用已禁用的console.timeStamp方法。
为获得最佳效果,请将此代码加载到/ _ah / channel / jsapi脚本标记上方,以确保在加载jsapi之前禁用console.timeStamp方法:
if(window.console) console.timeStamp = function(t) { };
注意:由于Google以这种方式调用Firebug日志记录,因此唯一的解决方案实际上可能需要一个错误报告或功能请求,以便以编程方式禁用此级别的日志记录。或者,Firebug团队可以提供新版本的Firebug,其中包括显式禁用timeStamp日志语句的功能,类似于他们使用错误,警告,XMLHttpRequests和其他日志级别执行此操作的方式。
答案 1 :(得分:1)
似乎没有办法关闭Firebug timeStamp日志。解决此问题的一种方法是编辑代码并自行删除此功能:
将扩展程序解压缩到Mozilla Firefox配置文件中的目录:
将目录更改为Firefox配置文件扩展目录。在Ubuntu上,这将是这样的:
cd ~/.mozilla/firefox/{random-string}/extensions/
Firebug扩展程序由firebug@software.joehewitt.com.xpi
标识。创建一个同名的新目录,但没有.xpi,并将XPI移动到该目录中:
mkdir firebug@software.joehewitt.com
mv firebug@software.joehewitt.com.xpi firebug@software.joehewitt.com
接下来,将目录更改为新创建的Firebug目录,然后解压缩扩展名:
cd firebug@software.joehewitt.com
unzip firebug@software.joehewitt.com.xpi
应解压缩所有文件,以便扩展程序的目录位于当前目录中。您的文件结构如下所示:
$: ~/.mozilla/firefox/{random-string}/extensions/firebug@software.joehewitt.com$ l
chrome.manifest defaults/ firebug@software.joehewitt.com.xpi install.rdf locale/ skin/
content/ docs/ icons/ license.txt modules/
$:〜/。mozilla / firefox / hulfe0bb.ff5.0 / extensions / firebug @ software.joehewitt.com $
在文本编辑器中打开consoleExposed.js:
接下来,切换到content/firebug/console
目录:
cd content/firebug/console
使用您喜欢的编辑器编辑consoleExposed.js
文件:
vim consoleExposed.js
禁用console.timeStamp:
在第215行或附近,您将看到以下功能:
console.timeStamp = function(label)
{
label = label || "";
if (FBTrace.DBG_CONSOLE)
FBTrace.sysout("consoleExposed.timeStamp; " + label);
var now = new Date();
Firebug.NetMonitor.addTimeStamp(context, now.getTime(), label);
var formattedTime = now.getHours() + ":" + now.getMinutes() + ":" +
now.getSeconds() + "." + now.getMilliseconds();
return logFormatted([formattedTime, label], "timeStamp");
};
在第一个大括号之后,强制该函数不返回任何内容:
console.timeStamp = function(label)
{ return ; // disable timestamp by returning
label = label || "";
if (FBTrace.DBG_CONSOLE)
重新启动Firefox并享受没有timeStamp的世界:
编辑完成后,重新启动Firebug。您不应再在控制台中看到timeStamp的日志消息。