从Firefox加载项登录控制台

时间:2013-04-13 12:56:01

标签: firefox logging console firefox-addon mozilla

Mozilla文档(https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/console.html)说我应该使用console.log从扩展程序生成邮件。据说这些消息出现在Firefox错误控制台中。但对我来说情况并非如此。我今天第一次使用Addon构建器,我想创建一个扩展来切换某些事件的标签。这些标签确实已切换到我期望的标签,因此我的代码肯定会运行。但是console.log输出无处可见。

我已将过滤器设置为“全部”。我看到的只是插件构建器本身的CSS警告。

我还安装了Firebug。它也没有显示任何东西。 (虽然从网页的上下文中使用console.log时这很好。)Firebug的问题在于它只对一个/某个标签启用,所以当切换标签时,它是无用的。我需要一个始终存在的日志窗口。

那么console.log的输出会在哪里结束?

4 个答案:

答案 0 :(得分:8)

继续将测试console.log("something")放入您的插件main();

如果错误控制台(“消息”选项卡)中没有显示任何内容,则Firefox可能未配置为显示console.log(最近发生在jetpack sdk 1.14上)。有关详细信息,请参阅:Changes to console.log behaviour in SDK 1.14

快速而肮脏的摘要:在about:config设置extensions.sdk.console.logLevel"all"

虽然你的问题是:

  

我已将过滤器设置为“全部”。

......听起来你已经意识到了这一点。所以你的意思并不完全清楚。

答案 1 :(得分:5)

而不是执行var aConsoleService = Cc...只需坚持以下内容,您就可以使用所有内容:

Cu.import('resource://gre/modules/devtools/Console.jsm');

现在可以执行任何操作,console.log('blah')console.time('rawr')console.endTime('rawr')等等

答案 2 :(得分:2)

为了完整性:在一个自助的,非基于SDK的插件中,我不得不在bootstrap.js中添加这两行以获得伪造的console.log():

var aConsoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
var console = {log:function(str){aConsoleService.logStringMessage(str);}}

对于其他人来说,可能会派上用场,我猜......

答案 3 :(得分:2)

我猜他们改变了一些东西,现在还没有显示console.log。我使用console.error进行调试,它仍然显示在ctrl-shift-j。

此页面说明了有关弃用错误控制台和使用Web控制台的信息。它可能是相关的。 https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIConsoleService

这不需要sdk。