0
|
1 var EXPORTED_SYMBOLS = ["LOG", "WARN", "ERROR"];
|
|
2
|
|
3 const Cc = Components.classes;
|
|
4 const Ci = Components.interfaces;
|
|
5 const Cr = Components.results;
|
|
6
|
|
7 var gLoggingEnabled = false;
|
|
8
|
|
9 function logMessage(text, level) {
|
|
10 var caller = null;
|
|
11 try {
|
|
12 caller = Components.stack.caller.caller;
|
|
13 }
|
|
14 catch (e) { }
|
|
15
|
|
16 var msg = Cc["@mozilla.org/scripterror;1"].
|
|
17 createInstance(Ci.nsIScriptError);
|
|
18 if (caller) {
|
|
19 var filename = caller.filename;
|
|
20 var sourceLine = caller.sourceLine;
|
|
21 var lineNumber = caller.lineNumber;
|
|
22 }
|
|
23 else {
|
|
24 var filename = "";
|
|
25 var sourceLine = "";
|
|
26 var lineNumber = 0;
|
|
27 }
|
|
28 msg.init(text, filename, sourceLine, lineNumber, 0,
|
|
29 level, "XUL JavaScript");
|
|
30
|
|
31 var console = Cc["@mozilla.org/consoleservice;1"].
|
|
32 getService(Ci.nsIConsoleService);
|
|
33 console.logMessage(msg);
|
|
34 }
|
|
35
|
|
36 function ERROR(string) {
|
|
37 dump("NTT ERROR: " + string + "\n");
|
|
38 logMessage("NTT: " + string, Ci.nsIScriptError.errorFlag);
|
|
39 }
|
|
40
|
|
41 function WARN(string) {
|
|
42 dump("NTT WARN : " + string + "\n");
|
|
43 logMessage("NTT: " + string, Ci.nsIScriptError.warningFlag);
|
|
44 }
|
|
45
|
|
46 function LOG(string) {
|
|
47 if (gLoggingEnabled) {
|
|
48 dump("NTT LOG : " + string + "\n");
|
|
49
|
|
50 var caller = null;
|
|
51 try {
|
|
52 caller = Components.stack.caller;
|
|
53 }
|
|
54 catch (e) { }
|
|
55
|
|
56 if (caller)
|
|
57 string += " (" + caller.filename + ":" + caller.lineNumber + ")";
|
|
58
|
|
59 var console = Cc["@mozilla.org/consoleservice;1"].
|
|
60 getService(Ci.nsIConsoleService);
|
|
61 console.logStringMessage("NTT: " + string);
|
|
62 }
|
|
63 }
|
|
64
|
|
65 var prefs = Cc["@mozilla.org/preferences-service;1"].
|
|
66 getService(Ci.nsIPrefBranch);
|
|
67 try {
|
|
68 gLoggingEnabled = prefs.getBoolPref("nightly.logging");
|
|
69 }
|
|
70 catch (e) { }
|