Enabling an application to read data from a log file to a log viewer involves the following tasks:
Enumerating instances of the Solaris_LogRecord class
Getting the desired instance
Printing properties of the instance to an output device, typically a user interface for the log viewer
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; |
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);
|
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");
|
Enumerate the instances of Solaris_LogRecord.
Enumeration e = cc.enumInstances(cop, true);
for (; e.hasMoreElements(); ) {
|
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("---------------------------------");
|
Return an error message to the user if an error condition occurs.
...
catch (Exception e) {
System.out.println("Exception: "+e);
e.printStackTrace(); }
...
|
Close the session when the data has been read from the file.
// close session.
if(cc != null) {
cc.close();
}
}
}
|