YUI errorLogging
As we have decided to start using the YUI javascript framework, I rewrote the logging tool I did for jQuery.
I understand there’s already a logging tool for YUI, but if you don’t want to initiate the logger, here’s a quick fix:
YAHOO.namespace('IPC'); (function(Y) { var Log = { debug : function(message) { if (window.console && window.console.firebug) { console.debug(message); } else { alert("Debug Message: " + message); } }, info : function(message) { if (window.console && window.console.firebug) { console.info(message); } else { alert("Info: " + message); } }, warn : function(message) { if (window.console && window.console.firebug) { console.warn(message); } else { alert("WARNING: " + message); } }, error : function(e) { if (window.console && window.console.firebug) { switch (typeof e) { case "boolean": case "number": case "string": console.error(e); break; case "object": console.group(e.name); console.error(e.message); if (e.object) { console.dir(e.object); } if (e.xml) { console.dirxml(e.xml); } console.trace(); console.groupEnd(); break; default: Y.IPC.Log.warn("Problem logging error. Unknown error type: '" + typeof e + "'"); console.error(e); } } else { var message = "FATAL ERROR!: "; switch (typeof e) { case "boolean": case "number": case "string": alert(message + e); break; case "object": alert(message + e.name); break; default: Y.IPC.Log.warn("Problem logging error. Unknown error type: '" + typeof e + "'"); alert(message + e); } } }, throwError : function(info) { var error = new Error(info.message); if (info.name) { error.name = info.name; } else { error.name = 'Error'; } if (info.object) { error.object = info.object; } if (info.xml) { error.xml = info.xml; } throw error; } } Y.IPC.Log = Log; })(YAHOO);
You’d use it in the same way as before, either a separate method in your object, use one of the logging methods directly, or use the throw method directly.
