forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							90 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							90 lines
						
					
					
						
							2.5 KiB
						
					
					
				| /*
 | |
|  * SIPRPLogger.java
 | |
|  *
 | |
|  * Created on 15 de Março de 2005, 15:31
 | |
|  */
 | |
| 
 | |
| package siprp;
 | |
| 
 | |
| import com.evolute.utils.*;
 | |
| import com.evolute.utils.db.*;
 | |
| import com.evolute.utils.error.*;
 | |
| import com.evolute.utils.sql.*;
 | |
| 
 | |
| /**
 | |
|  *
 | |
|  * @author  lflores
 | |
|  */
 | |
| public class SIPRPLogger implements Logger
 | |
| {
 | |
| 	private final String java = System.getProperty( "java.version" ) 
 | |
| 			+ "-" + System.getProperty( "java.vm.version" );
 | |
| 	private final String os = System.getProperty( "os.name" ) + " - " +
 | |
| 					System.getProperty( "os.version" );
 | |
| 	private final String user = ( String )Singleton.getInstance( Singleton.USERNAME );
 | |
| 	private final String ENV = "Java: " + java + " \nOS: " + os + " \nUser: " + user 
 | |
| 			+ "\n Software: " + ( String )Singleton.getInstance( SingletonConstants.SOFTWARE_NAME )
 | |
| 			+ "\n Version: " + Main.SHST_VERSION;
 | |
| 	private final Executer executer;
 | |
| 	
 | |
| 	/** Creates a new instance of SIPRPLogger */
 | |
| 	public SIPRPLogger()
 | |
| 		throws Exception
 | |
| 	{
 | |
| 		DBManager dbm = ( DBManager )Singleton.getInstance( SingletonConstants.DEFAULT_DBMANAGER );
 | |
| 		executer = dbm.getExclusiveExecuter( this );
 | |
| 	}
 | |
| 	
 | |
| 	public void log( String str )
 | |
| 	{
 | |
| 		String mem = "(" + Runtime.getRuntime().freeMemory() + "/" + 
 | |
| 				Runtime.getRuntime().maxMemory() + ")";
 | |
| 		if( str.length() > 254000 )
 | |
| 		{
 | |
| 			str = str.substring( 0, 254000 ) + " Message too big (" + str.length() + "), truncated.";
 | |
| 		}
 | |
| 		try
 | |
| 		{
 | |
| 			executer.executeQuery( new Insert( "errors", new Assignment[] {
 | |
| 						new Assignment( new Field( "type" ), "LOG" ),
 | |
| 						new Assignment( new Field( "environment" ), ENV + mem ),
 | |
| 						new Assignment( new Field( "description" ), str )
 | |
| 					} ), null );
 | |
| 		}
 | |
| 		catch( Exception ex )
 | |
| 		{
 | |
| 			logException( ex );
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	public void logException( Exception ex )
 | |
| 	{
 | |
| 		StackTraceElement ste[] = ex.getStackTrace();
 | |
| 		StringBuffer sb = new StringBuffer();
 | |
| 		for( int i = 0; i < ste.length; ++i )
 | |
| 		{
 | |
| 			sb.append( ste[ i ].toString() );
 | |
| 		}
 | |
| 		String str = "Exception Message: " + ex.getMessage() + "\nStack Trace: " + sb.toString();
 | |
| 		String mem = "(" + Runtime.getRuntime().freeMemory() + "/" + 
 | |
| 				Runtime.getRuntime().maxMemory() + ")";
 | |
| 		if( str.length() > 254000 )
 | |
| 		{
 | |
| 			str = str.substring( 0, 254000 ) + " Message too big (" + str.length() + "), truncated.";
 | |
| 		}
 | |
| 		try
 | |
| 		{
 | |
| 			executer.executeQuery( new Insert( "errors", new Assignment[] {
 | |
| 						new Assignment( new Field( "type" ), "ERROR" ),
 | |
| 						new Assignment( new Field( "environment" ), ENV + mem ),
 | |
| 						new Assignment( new Field( "description" ), str )
 | |
| 					} ), new SQLRetriever() );
 | |
| 		}
 | |
| 		catch( Exception ex1 )
 | |
| 		{
 | |
| 			ex.printStackTrace();
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| }
 |