⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logger.js

📁 JS库
💻 JS
字号:
/*	fvlogger v1.0	(c) 2005 davidfmiller	http://www.fivevoltlogic.com/code/fvlogger/	see readme.txt for documentation*/// version numbervar FVLOGGER_VERSION = '1.0';// turn logging on or off;var FVL_LOG_ON = true;// all logging statements that whose level is greater than or equal to FVL_DEFAULT_LOG_LEVEL will be processed;// all others will be ignoredvar FVL_DEFAULT_LOG_LEVEL = FVL_DEBUG;// the id of the node that will have the logging statements appended to itvar FVL_LOG_ID = 'fvlogger';// the element that should be wrapped around the log messagesvar FVL_LOG_ELEMENT = 'p';/* the code that follows is */// constants for logging levelsvar FVL_DEBUG = 0;var FVL_INFO = 1;var FVL_WARN = 2;var FVL_ERROR = 3;var FVL_FATAL = 4;// the css classes that will be applied to the logging elementsvar FVL_LOG_CLASSES = new Array("debug","info","warn","error","fatal");/* */// retrieves the element whose id is equal to FVL_LOG_IDfunction getLogger(id) {	if (arguments.length == 0) { id = FVL_LOG_ID; }	return document.getElementById(id);}function showDebug() { FVL_showMessages(FVL_DEBUG); }function showInfo() { FVL_showMessages(FVL_INFO); }function showWarn() { FVL_showMessages(FVL_WARN); }function showError() { FVL_showMessages(FVL_ERROR); }function showFatal() { FVL_showMessages(FVL_FATAL); }function showAll() { FVL_showMessages(); }// removes all logging information from the logging elementfunction eraseLog(ask) {	var debug = getLogger();	if (! debug) { return false; }	if (ask && ! confirm("Are you sure you wish to erase the log?")) {		return false;	}	var ps = debug.getElementsByTagName(FVL_LOG_ELEMENT);	var length = ps.length;	for (var i = 0; i < length; i++) { debug.removeChild(ps[length - i - 1]); }	return true;}function debug(message) { FVL_log("" + message, FVL_DEBUG); }function warn(message) { FVL_log("" + message, FVL_WARN); }function info(message) { FVL_log("" + message, FVL_INFO); }function error(message) { FVL_log("" + message, FVL_ERROR);}//function fatal(message) { FVL_log("" + message, FVL_FATAL);}function windowError(message, url, line) {	FVL_log('Error on line ' + line + ' of document ' + url + ': ' + message, FVL_FATAL);	return true; //}// only override the window's error handler if we logging is turned onif (FVL_LOG_ON) {	window.onerror = windowError;}// function FVL_showMessages(level, hideOthers) {//	alert('showing ' + level);	var showAll = false;	// if no level has been specified, use the default	if (arguments.length == 0) { level = FVL_DEFAULT_LOG_LEVEL; showAll = true; }	if (arguments.length < 2) { hideOthers = true; }	// retrieve the element and current statements	var debug = getLogger();	if (! debug) { return false; }	var ps = debug.getElementsByTagName("p");	if (ps.length == 0) { return true; }	// get the number of nodes in the list	var l = ps.length; 	// get the class name for the specified level	var lookup = FVL_LOG_CLASSES[level]; 	// loop through all logging statements/<p> elements...	for (var i = l - 1; i >= 0; i--) {		// hide all elements by default, if specified		if (hideOthers) { hide(ps[i]); } 		// get the class name for this <p>		var c = getNodeClass(ps[i]);//		alert(c);//		alert("Node #" + i + "'s class is:" + c);		if (c && c.indexOf(lookup) > -1 || showAll) { show(ps[i]); } 	}}// appends a statement to the logging element if the threshold level is exceededfunction FVL_log(message, level) {	// check to make sure logging is turned on	if (! FVL_LOG_ON) { return false; } 	// retrieve the infrastructure	if (arguments.length == 1) { level = FVL_INFO;}	if (level < FVL_DEFAULT_LOG_LEVEL) { return false; }	var div = getLogger();	if (! div) { return false; }	// append the statement	var p = document.createElement(FVL_LOG_ELEMENT);	// this is a hack work around a bug in ie	if (p.getAttributeNode("class")) {		for (var i = 0; i < p.attributes.length; i++) {			if (p.attributes[i].name.toUpperCase() == 'CLASS') {				p.attributes[i].value = FVL_LOG_CLASSES[level];			}		}	} else {		p.setAttribute("class", FVL_LOG_CLASSES[level]);	}	var text = document.createTextNode(message);	p.appendChild(text);	div.appendChild(p);	return true;}function exampleLogs() {	// describe the four types of logging messages	debug('Scatter debug messages throughout your code to provide a high-level overview of what your code is doing, such as which function is currently in scope and the values of loop counters.');	info('Information messages are the meat and potatoes of logging messages; sprinkle them around to reveal more detailed information about your script\'s execution, such as the values of variables and function/method return values.');	warn('Warning messages are used to indicate potentially hazardous situations, such as missing function arguments...');	error('While error messages are used to indicate that something bad is about to happen; note that these kinds of errors are considered to be run-time errors, which are a different type of beast from the parse errors mentioned below.');// generate an error to demonstrate the fatal error in ie and mozilla browsers	a }// show a nodefunction show(target) {	target.style.display = "";	return true;}// hide a nodefunction hide(target) {	target.style.display = "none";	return true;}// returns the class attribute of a nodefunction getNodeClass(obj) {	var result = false;	if (obj.getAttributeNode("class")) {		result = obj.attributes.getNamedItem("class").value;	}	return result;}use("jslib/jkl-floating.js");function createLoggerDiv(divName) {	// create a logger layer in the page.	new Insertion.Top(divName,"<dl>"+		"<dt id=\"fvlogger_header\">fvlogger</dt>"+		"<dd class=\"all\"><a href=\"#fvlogger\" onclick=\"showAll();\" title=\"show all\" id=\"abcdef\">all</a></dd>"+		"<dd class=\"debug\"><a href=\"#fvlogger\" onclick=\"showDebug();\" title=\"show debug\" id=\"showDebug\">debug</a></dd>"+		"<dd class=\"info\"><a href=\"#fvlogger\" onclick=\"showInfo();\" title=\"show info\" id=\"showInfo\">info</a></dd>"+		"<dd class=\"warn\"><a href=\"#fvlogger\" onclick=\"showWarn();\" title=\"show warnings\" id=\"showWarn\">warn</a></dd>"+		"<dd class=\"error\"><a href=\"#fvlogger\" onclick=\"showError();\" title=\"show errors\" id=\"showError\">error</a></dd>"+		"<dd class=\"fatal\"><a href=\"#fvlogger\" onclick=\"showFatal();\" title=\"show fatals\" id=\"showFatal\">fatal</a></dd>"+		"<dd><a href=\"#fvlogger\" onclick=\"eraseLog(true);\" title=\"erase\">erase</a></dd>"+		"</dl>");	var float2 = new JKL.Floating(divName,"fvlogger_header");	float2.opacity( 0.8, 0.5 );	float2.start();	float2.moveTo(400, 200);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -