David Tuite
David Tuite

Reputation: 22643

Logging to console from Firefox extension?

I understand that I can log to the console when using a Firefox extension with the cfx run command.

Is there a way to log to a console after the extension has been packaged with cfx xpi? Logging to Firebug is fine if possible.

I have found two blog posts about this (here and here). Both are rather old and don't work any more.

I'm using version 1.10 of the add-on SDK and FF15.

Upvotes: 21

Views: 21430

Answers (6)

golvok
golvok

Reputation: 1790

It seems the default debugging experience has improved a bit. Following the Firefox documentation, no special configuration is needed to get logged messages:

  1. Go to about:debugging.
  2. Click "This Firefox" at the top left.
  3. Click Inspect for your extension.

You'll get complete debugger tools for your extension, including the console.

Upvotes: 2

mindrones
mindrones

Reputation: 1233

You need to do 2 things:

  1. enable logging for addons

• in about:config, add a new option extensions.sdk.console.logLevel and give it the value "all"

• restart Firefox

  1. in Firefox open the Browser Console:

• Tools -> Web developer -> Browser console

• NOTE: this is different from the usual Web Console used to debug web pages

You should see addons logs there now.

Upvotes: 35

devyJava
devyJava

Reputation: 143

I will summarize recent changes that has taken with Firefox since this question got posted -- basically updated @LucaBonavita answer.

  1. In about:config, check if option extensions.sdk.console.logLevel is enabled. If not, toggle to enable. You might need to create it if it does not exist

  2. Open Browser Console

  • Menu Bar -> Tools -> Browser Tools -> Browser Console
  • Enable Show Content Messages in browser console.

enter image description here

Now, console.log triggered by Firefox addon/extension should display

Tested on Firefox 94.0.2 (64-bit) and 95.0b12 (64-bit)

Upvotes: 2

czerny
czerny

Reputation: 16624

TLDR:

  1. Go to about:config url and create key extensions.sdk.console.logLevel with value all
  2. See log messages either in Browser console (Ctrl+Shift+J) or in terminal you started Firefox from.

cfx or its successor jpm creates this configuration key automatically in development firefox profile.

From logging documentation:

extensions.sdk.console.logLevel: if set, this determines the logging level for all installed SDK-based add-ons.

extensions.extensionID.sdk.console.logLevel, where extensionID is an add-on's Program ID. If set, this determines the logging level for the specified add-on. This overrides the global preference if both preferences are set.

Upvotes: 7

therealjeffg
therealjeffg

Reputation: 5830

If you run console.log from Add-on code, it send up in the 'Messages' tab of the Error Console window:

https://www.evernote.com/shard/s1/sh/c40c509d-9f14-4103-920b-4186a426226c/53572f96a3bbe0462103a8126b8e9822/res/fcbead60-d9d0-48be-b744-3fa6701fdf1b/skitch.png

Upvotes: -1

Aamir
Aamir

Reputation: 5440

Have you tried console.log() with Firebug? (I know you have tried Application.console.log() and Firebug.console.log() already)

I just tried it in the Web Console on FF16 running Firebug 1.10.4 and it seems to work: Firefox Web Console

Here are some more examples from the Firebug Wiki itself: FirebugWiki Console API

Additionally, you can write messages of different types in the console, such as: console.debug(), console.info(), console.warn(), console.error()

Upvotes: 0

Related Questions