annotate modules/Logging.jsm @ 0:dada0ac40a8f

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