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

📄 debuglog.java

📁 一个简单的搜索search 的servlet程序
💻 JAVA
字号:
import java.io.*;import java.net.*;import LogServer;public class DebugLog extends Object{	private Socket server;	private String serverName;	private BufferedReader serverReader;		private PrintWriter log;		private static DebugLog sharedLog;		public static synchronized DebugLog getSharedLog()	{	    if(sharedLog == null) sharedLog = new DebugLog();	    return sharedLog;	}		public DebugLog()	{		log = null;	}		public synchronized boolean initialized()	{	    return ((log != null)||(serverName!=null));	}		public synchronized void log(String str)	{		if((log != null)||(serverName!=null))//exit quick if no log		{		    log(str,true);//retry	    }	}		public synchronized void log(Exception exp)	{		if((log != null)||(serverName!=null))//exit quick if no log		{		    StringWriter out;		    PrintWriter printOut;		    String logTrace;		    StringReader in;		    BufferedReader bufIn;		    String curLine;		    		    try		    {    		    out = new StringWriter();    		    printOut = new PrintWriter(out);		        		    exp.printStackTrace(printOut);    		    printOut.close();		        		    logTrace = out.toString();		        		    in = new StringReader(logTrace);    		    bufIn = new BufferedReader(in);		        		    while((curLine = bufIn.readLine()) != null)    		    {    		        log(curLine,true);    	        }	            	        bufIn.close();	        }	        catch(Exception ex)	        {	        }	    }	}		//protected method that allows the logger to reconnect	//to a server	protected synchronized void log(String str,boolean retry)	{	    boolean error=false;	    	    if(log != null)//exit quick if no log		{		    try		    {    	        log.println(str);			    			    if(serverReader != null)			    {			        //Read the response, but ignore			        //This should force an exception			        // if the socket is closed			        serverReader.readLine();			    }		    }		    catch(Exception ex)		    {		        error = true;		        closeLog();		    }		}		else		{		    error = true;		}				if((serverName != null) && error)		{		    if(retry)		    {		        logTo(serverName);		        log(str,false);//only retry one time		    }		    else		    {		        closeLog();		    }		}	}		public synchronized void logTo(File f)	{	    if(f!=null)	    {	        closeLog();	        	        try	        {    	        FileWriter fileIn = new FileWriter(f.getAbsolutePath(),true);	            log = new PrintWriter(fileIn,true);	        }	        catch(Exception exp)	        {	            log = null;	        }	    }	}		public synchronized void logTo(OutputStream stream)	{	    if(stream!=null)	    {	        closeLog();	        	        try	        {    	        log = new PrintWriter(stream,true);	        }	        catch(Exception exp)	        {	            log = null;	        }	    }	}		public synchronized void logTo(String logServer)	{	    if(logServer!=null)	    {	        closeLog();    	        	    serverName = logServer;	        	        try	        {	            server = new Socket(logServer,LogServer.DEFAULT_PORT);    	            	        InputStreamReader readIn;    	        readIn = new InputStreamReader(server.getInputStream());    	        serverReader = new BufferedReader(readIn);    	            	        log = new PrintWriter(server.getOutputStream(),true);    	        server.setSoTimeout(2000);//two seconds	        }	        catch(Exception exp)	        {	            log = null;	            server = null;	        }	    }	}		public synchronized void closeLog()	{	    if((log!=null)&&(server!=null))	    {	        try	        {	            log.println(LogServer.DISCONNECT_MSG);	        }	        catch(Exception exp)	        {	        }	    }	    	    if(log != null)	    {			log.flush();	        log.close();	        log = null;	    }	    	    if(server != null)	    {	        try	        {	            if(serverReader != null) serverReader.close();	            server.close();	            server = null;	            serverReader = null;	        }	        catch(Exception ex)	        {	        }	    }	}		public synchronized void finalize()	{	    closeLog();	}}class DebugLogTester{    public static int MSG_COUNT=100;    	public static void main(String[] args)	{		DebugLog logger = DebugLog.getSharedLog();		int i;				System.out.println("Created log.");		logger.logTo("192.168.0.172");		System.out.println("Set log dest.");				System.out.println("Logging messages.");			    for(i=0;i<MSG_COUNT;i++)		{ 		    try		    {		        logger.log("Test "+i);		        		        Thread.sleep(100);		    }		    catch(Exception exp)		    {		        System.out.println("Exception: "+exp);		    }		}				System.out.println("Closing log.");		logger.closeLog();	}}

⌨️ 快捷键说明

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