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

📄 xabstractlogger.java

📁 XBrowser是一个完全免费并且开源的Web浏览器
💻 JAVA
字号:
/****************************************************************
*              XBrowser  -  eXtended web Browser                *
*                                                               *
*           Copyright (c) 2000-2001  Armond Avanes              *
*     Refer to ReadMe & License files for more information      *
*                                                               *
*                                                               *
*                      By: Armond Avanes                        *
*       Armond555@yahoo.com     &    Armond333@yahoo.com        *
*                http://xbrowser.sourceforge.net/               *
*****************************************************************/
package xbrowser.logger;

import java.io.*;
import java.util.*;

import xbrowser.*;

public abstract class XAbstractLogger implements XLogger
{
	public XAbstractLogger()
	{
		this(XProjectConstants.LOG_MODE_VERBOSE);
	}

	public XAbstractLogger(int log_mode)
	{
		setLogMode( new XLogMode(log_mode) );
	}

	protected void setStreams(PrintStream ps_out, PrintStream ps_err)
	{
		out = ps_out;
		err = ps_err;

		// Log some stuff
	String[] props = {
			"java.version", "java.vendor", "java.compiler", "os.name",
			"os.version", "os.arch", "user.home"
		};

		if( !logMode.isOff() )
		{
			logImpl(XRepository.getLogger(), "When reporting bugs, please include the following information:", MESSAGE, out);
			logImpl(XRepository.getLogger(), XProjectConstants.PRODUCT_NAME+" version="+XProjectConstants.PRODUCT_VERSION, MESSAGE, out);

			for( int i=0; i<props.length; i++)
				logImpl(XRepository.getLogger(), props[i] + "=" + System.getProperty(props[i]), MESSAGE, out);
		}
	}

	public void setLogMode(XLogMode log_mode)
	{
		logMode = log_mode;
	}

	public void addLogException(String log_e, XLogMode log_mode)
	{
		if( !logExceptions_Modes.containsKey(log_e) )
			logExceptions_Modes.put(log_e, log_mode);
	}

	public void removeLogException(String log_e)
	{
		logExceptions_Modes.remove(log_e);
	}

	public final void message(Object src, Object obj)
	{
		if( logMode.getLogMessages() )
			logImpl(src, obj, MESSAGE, out);
	}

	public final void debug(Object src, Object obj)
	{
		if( logMode.getLogDebugs() )
			logImpl(src, obj, DEBUG, out);
	}

	public final void warning(Object src, Object obj)
	{
		if( logMode.getLogWarnings() )
			logImpl(src, obj, WARNING, err);
	}

	public final void error(Object src, Object obj)
	{
		if( logMode.getLogErrors() )
			logImpl(src, obj, ERROR, err);
	}

	private void logImpl(Object src, Object obj, int type, PrintStream ps)
	{
		if( ps==null )
			return;

	String class_name = XRepository.getResourceManager().getClassName(src);

		if( isAnException(class_name, type) )
			return;

		ps.print("["+getTitle(type)+"-"+class_name+"] ");

		if( obj instanceof Throwable )
			((Throwable)obj).printStackTrace(ps);
		else
			ps.println(obj);
	}

	private boolean isAnException(String str, int type)
	{
	Iterator it = logExceptions_Modes.keySet().iterator();
	String excep_item;
	XLogMode log_mode;

		while( it.hasNext() )
		{
			excep_item = (String)it.next();
			log_mode = (XLogMode)logExceptions_Modes.get(excep_item);

			if( excep_item.equalsIgnoreCase(str) )
			{
				if( ((type==MESSAGE) && (log_mode.getLogMessages()==false)) ||
					((type==DEBUG) && (log_mode.getLogDebugs()==false)) ||
					((type==WARNING) && (log_mode.getLogWarnings()==false)) ||
					((type==ERROR) && (log_mode.getLogErrors()==false)) )
				return true;
			}
		}

		return false;
	}

	private String getTitle(int type)
	{
		switch( type )
		{
			case MESSAGE:
				return ">Message:";
			case DEBUG:
				return ">Debug:";
			case WARNING:
				return ">Warning:";
			case ERROR:
				return ">Error:";
			default:
				return ">??!!";
		}
	}

// Attributes:
	private static final int MESSAGE = 1;
	private static final int DEBUG = 3;
	private static final int WARNING = 5;
	private static final int ERROR = 7;

	private PrintStream out = null;
	private PrintStream err = null;
	private Map logExceptions_Modes = new HashMap();

	private XLogMode logMode = new XLogMode();
}

⌨️ 快捷键说明

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