comparison modules/Logging.jsm @ 0:dada0ac40a8f

initial import
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Tue, 02 Dec 2008 20:31:01 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:dada0ac40a8f
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) { }