Solaris WBEM Services Administrator's Guide

Reading Data From a Log File

Enabling an application to read data from a log file to a log viewer involves the following tasks:

How to Get an Instance of the Solaris_LogRecord Class and Read Data
  1. Import all the necessary Java classes. The classes listed below are the minimum required.

    import java.rmi.*;
    import com.sun.wbem.client.CIMClient;
    import com.sun.wbem.cim.CIMInstance;
    import com.sun.wbem.cim.CIMValue;
    import com.sun.wbem.cim.CIMProperty;
    import com.sun.wbem.cim.CIMNameSpace;
    import com.sun.wbem.cim.CIMObjectPath;
    import com.sun.wbem.cim.CIMClass;
    import com.sun.wbem.cim.CIMException;
    import com.sun.wbem.solarisprovider.*;
    import java.util.*;
    import java.util.Enumeration;
  2. Declare the class ReadLog.

    public class ReadLog 
        {
        public static void main(String args[]) throws 
        CIMException 
        {
        if ( args.length != 3) 
        {
        System.out.println("Usage: ReadLog host username 
        password"); 
    	    System.exit(1);
  3. Set the CIMClient, CIMObjectPath, and CIMNameSpace values of the ReadLog class.

    } 	
    CIMClient cc = null; 
    	CIMObjectPath cop = null; 
    try { 	    CIMNameSpace cns = new CIMNameSpace(args[0]); 
    cc = new CIMClient(cns, args[1], args[2]); 
    cop = new CIMObjectPath("Solaris_LogRecord"); 
  4. Enumerate the instances of Solaris_LogRecord.

    Enumeration e = cc.enumInstances(cop, true);
        for (; e.hasMoreElements(); ) {
  5. Send the property values to an output device.

    System.out.println("---------------------------------");
    			CIMObjectPath op = (CIMObjectPath)e.nextElement();
    			CIMInstance ci = cc.getInstance(op);
    			System.out.println("Record ID : " + 
          (((Long)ci.getProperty("RecordID").getValue().
          
          getValue()).longValue()));
    			System.out.println("Log filename : " + 
          ((String)ci.getProperty("FileName").getValue().
          getValue())); 
    
    			int categ = (((Integer)ci.getProperty("category").
          getValue().getValue()).intValue());
    			if (categ == 0)
    				System.out.println("Category : Application Log");
    			else if (categ == 1)
    				System.out.println("Category : Security Log");
    			else if (categ == 2)
    				System.out.println("Category : System Log");
    
    			int severity = (((Integer)ci.getProperty
          ("severity").getValue().getValue()).intValue());
    			if (severity == 0)
    				System.out.println("Severity : Informational");
    			else if (severity == 1)
    				System.out.println("Severity : Warning Log!");
    			else if (severity == 2)
    				System.out.println("Severity : Error!!");
    
    			System.out.println("Log Record written by :" + 
          ((String)ci.getProperty("AppName").getValue().
          getValue()));
    
    			System.out.println("User : " + ((String)ci.
          getProperty("UserName").getValue().getValue()));
    
    			System.out.println("Client Machine : " + ((String)ci.
          getProperty("ClientMachineName").getValue().getValue()));
    
    			System.out.println("Server Machine : " + ((String)ci.
          getProperty("ServerMachineName").getValue().getValue()));
    
    			System.out.println("Summary Message : " + ((String)
          ci.getProperty("SummaryMessage").getValue().getValue()));
    
    			System.out.println("Detailed Message : " + ((String)
          ci.getProperty("DetailedMessage").getValue().getValue()));
    
    			System.out.println("Additional data : " + ((String)
          ci.getProperty("data").getValue().getValue()));
    
    			boolean syslogflag =((Boolean)ci.getProperty("syslogflag").getValue().
          getValue()).booleanValue();
    		   if (syslogflag == true) {
    			System.out.println("Record was written to syslog as well");
    			} else {
    			System.out.println("Record was not written to 
          syslog");
    			}
    			System.out.println("---------------------------------");
  6. Return an error message to the user if an error condition occurs.

    ...
    	catch (Exception e) {
    	    System.out.println("Exception: "+e);
    		e.printStackTrace(); }
    ...
  7. Close the session when the data has been read from the file.

    // close session.
    	if(cc != null) {
    	    cc.close();
    	}
    }
    }