WBEMfor Solaris on Sun Developer'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 Solaris_LogRecord and Read Data
  1. Import all necessary java.rmi classes.


    Example 13-7 Importing Classes

    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.


    Example 13-8 Declaring the ReadLog Class

    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 client, object path, and namespace values of the ReadLog class.


    Example 13-9

    	} 	
    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 instances of Solaris_LogRecord.


    Example 13-10 Enumerating Instances

     Enumeration e = cc.enumInstances(cop, true);
    		for (; e.hasMoreElements(); ) {

  5. Send property values to an output device.


    Example 13-11 Sending Property Values

    	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.


    Example 13-12 Returning an Error Message

    }
    	catch (Exception e) {
    	    System.out.println("Exception: "+e);
    		e.printStackTrace();
    	}

  7. Close the session when the data has been read from the file.


    Example 13-13 Closing the Session

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