Sun WBEM 開発ガイド

ログファイルへのデータの書き込み

アプリケーションでデータをログファイルに書き込むには、次の作業を行います。

データを書き込むために Solaris_LogRecord のインスタンスを作成するには
  1. 必要なすべての java.rmi クラスをインポートします。


    例 13-1 クラスのインポート

    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. 公開クラス CreateLog と次の値を宣言します。

    • CIMClient の値

    • CIMObjectPath の値

    • CIMNameSpace の値


    例 13-2 CreateLog クラスと値の宣言

    public class CreateLog {
        public static void main(String args[ ]) throws CIMException {
    	
    	if ( args.length != 3) {
    	    System.out.println("Usage: CreateLog host username password"); 
    	    System.exit(1);
    	}
     
    	CIMClient cc = null;
    	CIMObjectPath cop = null;
    	try {
    	    CIMNameSpace cns = new CIMNameSpace(args[0]);
    	    cc = new CIMClient(cns, args[1], args[2]);
     

  3. プロパティのベクトルが返されるように指定します。修飾子のプロパティに値を設定します。


    例 13-3 プロパティのベクトルと値の指定

    Vector keys = new Vector();  		
    CIMProperty logsvcKey = new CIMProperty("RecordID"); 		
    logsvcKey.setValue(new CIMValue(new Integer(0))); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("RecordHashCode"); 		
    logsvcKey.setValue(new CIMValue(new Integer(0))); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("Filename"); 		
    logsvcKey.setValue(new CIMValue("some_file")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("category"); 		
    logsvcKey.setValue(new CIMValue(new Integer(2))); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("severity"); 		
    logsvcKey.setValue(new CIMValue(new Integer(2))); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("AppName"); 		
    logsvcKey.setValue(new CIMValue("SomeApp")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("UserName"); 		
    logsvcKey.setValue(new CIMValue("molly")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("ClientMachineName"); 		
    logsvcKey.setValue(new CIMValue("dragonfly")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("ServerMachineName"); 		
    logsvcKey.setValue(new CIMValue("spider")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("SummaryMessage"); 		
    logsvcKey.setValue(new CIMValue("brief_description")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("DetailedMessage"); 		
    logsvcKey.setValue(new CIMValue("detailed_description")); 		
    keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("data"); 		
    logsvcKey.setValue(new CIMValue("0xfe 0x45 0xae 0xda")); 
    	keys.addElement(logsvcKey); 		
    logsvcKey = new CIMProperty("SyslogFlag"); 		
    logsvcKey.setValue(new CIMValue(new Boolean(true))); 		
    keys.addElement(logsvcKey); 

  4. ログ記録用に CIMObjectPath の新しいインスタンスを宣言します。


    例 13-4 CIMObjectPath の新しいインスタンスの宣言

    CIMObjectPath logreccop = new CIMObjectPath("Solaris_LogRecord", keys);

  5. Solaris_LogRecord の新しいインスタンスを宣言します。ファイルに書き込むようにプロパティのベクトルを設定します。


    例 13-5 インスタンスとプロパティの設定

    CIMInstance ci = new CIMInstance();
    		ci.setClassName("Solaris_LogRecord");
    		ci.setProperties(keys);
    		//System.out.println(ci.toString());
    		cc.setInstance(logreccop,ci);
    	}
    	catch (Exception e) {
    	    System.out.println("Exception: "+e);
    		e.printStackTrace();
    	}

  6. データがログファイルに書き込まれたあと、セッションを閉じます。


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

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