Open
Bug 940037
Opened 9 years ago
Updated 7 years ago
Provide a better Components.utils.reportError
Categories
(Toolkit :: General, defect)
Toolkit
General
Tracking
()
NEW
People
(Reporter: Yoric, Unassigned)
References
(Depends on 1 open bug)
Details
We generally use Components.utils.reportError to provide one-liner reporting for exceptions. Unfortunately, this loses most of the interesting information, in particular the stack. try { // ... } catch (ex) { logError("Something failed", ex); // Displays "Something failed", a time stamp, the full stack of |ex| if available, the error message of |ex|, the file name, line number. } Ideally, this should be available on workers, too, but this can wait for a followup bug.
Reporter | ||
Comment 1•9 years ago
|
||
Irving, gps, gozala, I seem to remember that you all have logging libraries on mozilla-central (perhaps it's the same ones, I haven't checked). Would they do the trick?
Flags: needinfo?(rFobic)
Flags: needinfo?(irving)
Flags: needinfo?(gps)
Comment 2•9 years ago
|
||
toolkit/modules/Log.jsm. It has support for "structured" messages. These are messages that are represented by a JS value instead of a string and contain a custom formatting function that can convert said value into a string for human display. Or they can convert it to JSON for machine consumption. You get the idea. I'd still like to add a "logging service" that handles things like hooking Log.jsm up to preferences so you can e.g. easily adjust logging levels at run-time. For now, you have to do these things manually. For now, search for "log" in services/datareporting/DataReportingService.js to see how it all works.
Flags: needinfo?(gps)
Comment 3•9 years ago
|
||
I've used (and slightly modified) a fork of log4moz in the Thunderbird codebase, and the Addon Manager has its own logging framework (http://dxr.mozilla.org/mozilla-central/source/toolkit/mozapps/extensions/AddonLogging.jsm). I like the ability to control logging through preferences as implemented in https://mxr.mozilla.org/comm-central/source/mailnews/db/gloda/modules/log4moz.js; aside from that I'd be happy to switch to toolkit/modules/Log.jsm.
Flags: needinfo?(irving)
Comment 4•9 years ago
|
||
log4moz.js was renamed to Log.jsm.
Comment 5•9 years ago
|
||
We've switched to console implementation from devtools defined under: resource://gre/modules/devtools/Console.jsm It's pretty good and includes stack traces, also outputs interactive objects into browser console. I don't know if it's compatible with workers though. Cc-ing Mihai as I believe he'll know that.
Flags: needinfo?(rFobic) → needinfo?(mihai.sucan)
Comment 6•9 years ago
|
||
Can you Cu.import() Console.jsm from workers? If yes, you should be able to use it for the purpose of logging to the terminal. I don't think it works with the browser console because we don't shuffle the objects cross-process. It would be nice if we could somehow attach the console to the workers.
Flags: needinfo?(mihai.sucan)
Reporter | ||
Comment 7•9 years ago
|
||
No, we can't Cu.import() anything from workers. However, a quick look at the code seems to indicate that most of it could work on workers, once bug 620935 has landed.
You need to log in
before you can comment on or make changes to this bug.
Description
•