penguin/AstroJS

Javascript framework for my blog

botanjs/src/System/Log.js

raw ยท 935 bytes

(function(){
	var ns = __namespace( "System.Log" );
	var handler = [];

	var SYSTEM = 1;
	var INFO = 16;
	var ERROR = 32;

	var writeLine = function ( mesg, type )
	{
		type = ( type === undefined ) ? INFO : type;

		var handled = false;
		for( var i in handler )
		{
			handler[i]( mesg, type );
			handled = true;
		}

		if( !handled
			&& window[ "console" ]
			&& console.log
		) console.log( mesg );
	};

	var registerHandler = function( func )
	{
		var index = -1;
		handler[ index = handler.length ] = func;

		return index;
	};

	var removeHandler = function( index )
	{
		delete handler[ index ];
	};

	ns[ NS_EXPORT ]( EX_FUNC, "writeLine", writeLine );
	ns[ NS_EXPORT ]( EX_FUNC, "registerHandler", registerHandler );
	ns[ NS_EXPORT ]( EX_FUNC, "removeHandler", removeHandler );

	ns[ NS_EXPORT ]( EX_CONST, "INFO", INFO );
	ns[ NS_EXPORT ]( EX_CONST, "ERROR", ERROR );
	ns[ NS_EXPORT ]( EX_CONST, "SYSTEM", SYSTEM );
})();