Mercurial > nightly_tester_tools
diff modules/Logging.jsm @ 0:dada0ac40a8f
initial import
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 02 Dec 2008 20:31:01 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/Logging.jsm Tue Dec 02 20:31:01 2008 +0900 @@ -0,0 +1,70 @@ +var EXPORTED_SYMBOLS = ["LOG", "WARN", "ERROR"]; + +const Cc = Components.classes; +const Ci = Components.interfaces; +const Cr = Components.results; + +var gLoggingEnabled = false; + +function logMessage(text, level) { + var caller = null; + try { + caller = Components.stack.caller.caller; + } + catch (e) { } + + var msg = Cc["@mozilla.org/scripterror;1"]. + createInstance(Ci.nsIScriptError); + if (caller) { + var filename = caller.filename; + var sourceLine = caller.sourceLine; + var lineNumber = caller.lineNumber; + } + else { + var filename = ""; + var sourceLine = ""; + var lineNumber = 0; + } + msg.init(text, filename, sourceLine, lineNumber, 0, + level, "XUL JavaScript"); + + var console = Cc["@mozilla.org/consoleservice;1"]. + getService(Ci.nsIConsoleService); + console.logMessage(msg); +} + +function ERROR(string) { + dump("NTT ERROR: " + string + "\n"); + logMessage("NTT: " + string, Ci.nsIScriptError.errorFlag); +} + +function WARN(string) { + dump("NTT WARN : " + string + "\n"); + logMessage("NTT: " + string, Ci.nsIScriptError.warningFlag); +} + +function LOG(string) { + if (gLoggingEnabled) { + dump("NTT LOG : " + string + "\n"); + + var caller = null; + try { + caller = Components.stack.caller; + } + catch (e) { } + + if (caller) + string += " (" + caller.filename + ":" + caller.lineNumber + ")"; + + var console = Cc["@mozilla.org/consoleservice;1"]. + getService(Ci.nsIConsoleService); + console.logStringMessage("NTT: " + string); + } +} + +var prefs = Cc["@mozilla.org/preferences-service;1"]. + getService(Ci.nsIPrefBranch); +try { + gLoggingEnabled = prefs.getBoolPref("nightly.logging"); +} +catch (e) { }