Paul Daniell - Debug.Logger-0.01

Documentation | Source

NAME

Debug.Logger - A Debugging Logger

SYNOPSIS

Creating a simple debugging window which maintains focus

                <script> 
                
                var logger = new Debug.Logger("debug_level_focus"); 
                logger.debugMode();
                logger.makeFocus();
                logger.debug("Debugging info"); 
                logger.debug("Some more debugging info"); 
                logger.info("Informational level debugging"); 
                logger.warn("Uh ok"); 
                 
                 
                </script>

Turning off a logger so it doesn't bother you

                <script> 
                
                var logger = new Debug.Logger("off"); 
                logger.off();
                ...
                logger.debug("Debugging info"); 
                logger.debug("Some more debugging info"); 
                logger.info("Informational level debugging"); 
                logger.warn("Uh ok"); 
                 
                 
                </script>

Make the logger only popup when there are warnings

                <script> 
                
                var logger = new Debug.Logger("warn_level_no_focus"); 
                logger.warnMode();
                logger.debug("Debugging info"); 
                logger.debug("Some more debugging info"); 
                logger.info("Informational level debugging"); 
                logger.warn("Uh ok"); 
                 
                 
                 
                </script>

DESCRIPTION

 A logger which sends output to a new window. 
 
 The logger has four modes:
 
 (1) C<OFF>
 (2) C<WARN>
 (3) C<INFO>
 (4) C<DEBUG>
 
 Setting an instance of a logger to one of these 
 modes will cause messages tagged as such to be logged
 and every logging level above it. Therefore, setting
 a logger to C<INFO> mode will cause all
 informational and warning statements to be logged. 
 
 Call the C<takeFocus()> and C<loseFocus()> methods if you 
 want the debugging window to stay on top or fall below
 the parent window, respectively.
  
 By default, new loggers are set to C<OFF>. 

Constructor

         var logger = new Debug.Logger("window_name"); 

Create a new Debug.Logger object. Each unique name defines a single logging window.

Methods

off()

Stops the logger from creating a popup or producing any further log output.

warnMode()

Logs WARNING statements.

infoMode()

Logs INFO and WARNING statements.

debugMode()

Logs DEBUG, INFO, and WARNING statements.

debug(msg)

Sends a DEBUG message to the logger.

warn(msg)

Sends a WARN message to the logger.

info(msg)

Sends an INFO message to the logger.

EXPORTS

Nothing.

AUTHOR

Paul Daniell <paul.daniell@gmail.com>

if(!Debug) var Debug = {}; 
	
	
Debug.Logger = function Logger(name){ 
	this.name = name;
	this.debugConsole = null;
	this.level = 0;
	this.focus = false;
}

Debug.Logger.VERSION = '1.0'; 

Debug.Logger.DEBUG = 300;
Debug.Logger.INFO = 200; 
Debug.Logger.WARN = 100;
Debug.Logger.OFF = 0; 

Debug.Logger.prototype.log = function(msg){
		
		if(this.debugConsole == null || (this.debugConsole.closed)){
			this.debugConsole = window.open("", this.name, "height=300,width=600,scrollbars=yes"); 
			this.debugConsole.document.open("text/html"); 
			this.debugConsole.document.writeln("<html><body>");
		}
		this.debugConsole.document.writeln("<div style=\"font-family:monospace\">" + msg + "</div>");
		if(this.focus == true)
			this.debugConsole.focus();
		
}
	
Debug.Logger.prototype.debug = function(msg) { 
		if(this.level >= Debug.Logger.DEBUG) {
			this.log("DEBG[" + new Date().getTime() +"]: " + msg); 
		}
	}
	
Debug.Logger.prototype.warn = function(msg) { 
		if(this.level >= Debug.Logger.WARN){ 
			this.log("<span style=\"color:red;\">WARN[" + new Date().getTime() + "]: " + msg + "</span>");
		}
		
	}

Debug.Logger.prototype.info = function(msg) { 
		if(this.level >= Debug.Logger.INFO) { 
			this.log("INFO[" + new Date().getTime() + "]: " + msg); 
		}
	}
	
Debug.Logger.prototype.debugMode =  function(){ 
		this.level = Debug.Logger.DEBUG;
	}
	

Debug.Logger.prototype.warnMode = function(){ 
		this.level = Debug.Logger.WARN; 
}
	
Debug.Logger.prototype.infoMode = function() {
		this.level = Debug.Logger.INFO; 
}

Debug.Logger.prototype.off = function() { 
		this.level = Debug.Logger.OFF;
}
	
Debug.Logger.prototype.makeFocus = function() { 
	this.focus = true;
}

Debug.Logger.prototype.loseFocus = function() { 
	this.focus = false;
}
	

/*

=head1 NAME

Debug.Logger - A Debugging Logger

=head1 SYNOPSIS

=head2 Creating a simple debugging window which maintains focus 

		<script> 
		
		var logger = new Debug.Logger("debug_level_focus"); 
		logger.debugMode();
		logger.makeFocus();
		logger.debug("Debugging info"); 
		logger.debug("Some more debugging info"); 
		logger.info("Informational level debugging"); 
		logger.warn("Uh ok"); 
		 
		 
		</script>
	

=head2 Turning off a logger so it doesn't bother you

		<script> 
		
		var logger = new Debug.Logger("off"); 
		logger.off();
		...
		logger.debug("Debugging info"); 
		logger.debug("Some more debugging info"); 
		logger.info("Informational level debugging"); 
		logger.warn("Uh ok"); 
		 
		 
		</script>


=head2 Make the logger only popup when there are warnings

		<script> 
		
		var logger = new Debug.Logger("warn_level_no_focus"); 
		logger.warnMode();
		logger.debug("Debugging info"); 
		logger.debug("Some more debugging info"); 
		logger.info("Informational level debugging"); 
		logger.warn("Uh ok"); 
		 
		 
		 
		</script>

=head1 DESCRIPTION

 A logger which sends output to a new window. 
 
 The logger has four modes:
 
 (1) C<OFF>
 (2) C<WARN>
 (3) C<INFO>
 (4) C<DEBUG>
 
 Setting an instance of a logger to one of these 
 modes will cause messages tagged as such to be logged
 and every logging level above it. Therefore, setting
 a logger to C<INFO> mode will cause all
 informational and warning statements to be logged. 
 
 Call the C<takeFocus()> and C<loseFocus()> methods if you 
 want the debugging window to stay on top or fall below
 the parent window, respectively.
  
 By default, new loggers are set to C<OFF>. 
  

=head2 Constructor

	 var logger = new Debug.Logger("window_name"); 


Create a new C<Debug.Logger> object. Each unique name
defines a single logging window. 



=head2 Methods

=head3 off()

Stops the logger from creating a popup or producing
any further log output.

=head3 warnMode()

Logs WARNING statements.

=head3 infoMode()

Logs INFO and WARNING statements.

=head3 debugMode()

Logs DEBUG, INFO, and WARNING statements.

=head3 debug(msg)

Sends a DEBUG message to the logger.

=head3 warn(msg)

Sends a WARN message to the logger.

=head3 info(msg)

Sends an INFO message to the logger.


=head2 EXPORTS

Nothing.


=head1 AUTHOR

Paul Daniell <paul.daniell@gmail.com>

=cut

*/