アプリケーションでログファイルから Log Viewer にデータを読み込むには、次の作業を行います
Solaris_LogRecord クラスのインスタンスを列挙する
目的のインスタンスを取得する
出力デバイス (通常はユーザーインタフェース) にインスタンスのプロパティを出力する
必要なすべての java クラスをインポートします。例 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; |
クラス 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);
|
ReadLog クラスのクライアント、オブジェクトパス、およびネームスペースの値を設定します。
}
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");
|
Solaris_LogRecord のインスタンスを列挙します。
Enumeration e = cc.enumInstances(cop, true);
for (; e.hasMoreElements(); ) {
|
プロパティの値を出力デバイスに送ります。
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("-----------------------------
----");
}
|
エラーが発生した場合は、ユーザーにエラーメッセージを返します。
...
}
catch (Exception e) {
System.out.println("Exception: "+e);
e.printStackTrace();
}
...
|
ファイルからデータが読み取られたあとセッションを閉じます。
// セッションを閉じる。
if(cc != null) {
cc.close();
}
}
}
|