Solaris WBEM Services の管理

ログファイルからのデータの読み取り

アプリケーションでログファイルから Log Viewer にデータを読み込むには、次の作業を行います

Solaris_LogRecord のインスタンスを取得し、データを読み取る方法
  1. 必要なすべての java クラスをインポートします。例 5-7 に示すクラスは、インポートする必要がある最小限のクラスです。


    例 5-7 クラスのインポート

    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. クラス ReadLog を宣言します。


    例 5-8 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. ReadLog クラスのクライアント、オブジェクトパス、およびネームスペースの値を設定します。


    例 5-9 Solaris ログ記録の作成

    	} 	
    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. Solaris_LogRecord のインスタンスを列挙します。


    例 5-10 インスタンスの列挙

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

  5. プロパティの値を出力デバイスに送ります。


    例 5-11 プロパティ値の送信

    	
    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. エラーが発生した場合は、ユーザーにエラーメッセージを返します。


    例 5-12 エラーメッセージを返す

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

  7. ファイルからデータが読み取られたあとセッションを閉じます。


    例 5-13 セッションを閉じる

    	// セッションを閉じる。
    	if(cc != null) {
    	    cc.close();
    	}
    }
    }