blob: 673b4d805125525ac870b6f15c515ec577f5ab43 [file] [log] [blame]
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.logging.ConsoleLogger");
dojo.require("dojo.logging.Logger");
dojo.lang.extend(dojo.logging.MemoryLogHandler, {debug:function () {
dojo.hostenv.println.apply(this, arguments);
}, info:function () {
dojo.hostenv.println.apply(this, arguments);
}, warn:function () {
dojo.hostenv.println.apply(this, arguments);
}, error:function () {
dojo.hostenv.println.apply(this, arguments);
}, critical:function () {
dojo.hostenv.println.apply(this, arguments);
}, emit:function (record) {
if (!djConfig.isDebug) {
return;
}
var funcName = null;
switch (record.level) {
case 1:
funcName = "debug";
break;
case 2:
funcName = "info";
break;
case 3:
funcName = "warn";
break;
case 4:
funcName = "error";
break;
case 5:
funcName = "critical";
break;
default:
funcName = "debug";
}
var logStr = String(dojo.log.getLevelName(record.level) + ": " + record.time.toLocaleTimeString()) + ": " + record.message;
if (record.msgArgs && record.msgArgs.length > 0) {
this[funcName].call(this, logStr, record.msgArgs);
} else {
this[funcName].call(this, logStr);
}
this.data.push(record);
if (this.numRecords != -1) {
while (this.data.length > this.numRecords) {
this.data.shift();
}
}
}});
if (!dj_undef("console") && !dj_undef("info", console)) {
dojo.lang.extend(dojo.logging.MemoryLogHandler, {debug:function () {
console.debug.apply(this, arguments);
}, info:function () {
console.info.apply(this, arguments);
}, warn:function () {
console.warn.apply(this, arguments);
}, error:function () {
console.error.apply(this, arguments);
}, critical:function () {
console.error.apply(this, arguments);
}});
dojo.lang.extend(dojo.logging.Logger, {exception:function (msg, e, squelch) {
var args = [msg];
if (e) {
msg += " : " + e.name + " " + (e.description || e.message);
args.push(e);
}
this.logType("ERROR", args);
if (!squelch) {
throw e;
}
}});
}