第16章
この章では、exteNd Director付属のXMLおよびIPDRログプロバイダの使用について説明します。
この章は、次の節で構成されています。
exteNd Directorは標準ログ機能に加え、次のものを生成できる2つのログプロバイダを含みます。
IPDRは、リソースとサービス使用状況に関する情報を交換するために、開かれた拡張可能な記録形式を定義します。IPDRの詳細については、IPDR.org Webサイトを参照してください。
XMLおよびIPDRログプロバイダの動作は、exteNd Directorにサポートされる標準ログメカニズムの動作に似ています。
標準ログメカニズムの使用方法の詳細については、を参照してください。
XMLまたはIPDRログプロバイダを使用するには、まず、EboLogのインスタンスであるログオブジェクトを取得する必要があります。これを実行するには、EboLogFactoryクラスのgetLog()メソッドを使用する必要があります(次を参照)。
logXML = (EboLog) EboLogFactory.getLog( "XML Test" ); logIPDR = (EboLog) EboLogFactory.getLog( "IPDR Test" );
その後、EboLogのaddLoggingProvider()メソッドを使用して、2つのログプロバイダのいずれかを追加します。
XMLログにログプロバイダオブジェクトを追加するには、次のメソッド呼び出しを使用します。
logXML.addLoggingProvider(EboUniqueXMLFileLoggingProvider.class.getName());
IPDRログにログプロバイダオブジェクトを追加するには、次のメソッド呼び出しを使用します。
logIPDR.addLoggingProvider(EboUniqueIPDRFileLoggingProvider.class.getName());
いずれのプロバイダも、次のようなログファイル形式用のテンプレートを持ちます。いずれの種類のテンプレートも、FrameworkService.jarファイル内のFrameworkService-confディレクトリに配置することが必要です。
テンプレートの名前は、ログ文字列のタグとして指定できます。 テンプレートの各変数も、組み込みプロパティの1つでない限り、ログ文字列で指定する必要があります。
logIPDR.audit("<template>sms_bin</template><WapID>aaaaa</WapID><pnummer>1</pnummer>")
組み込みプロパティの詳細については、組み込みプロパティを参照してください。
XMLログファイルのテンプレートは、1つまたは複数のXML要素、およびログデータで置き換える変数を指定します。たとえば、XMLファイルの形式は次のようになります。
<?xml version="1.0"?> <root>${event}</root>
新しいログファイルが作成されると、テンプレートを使用してそのファイルをフォーマットします。${}変数は実際のログ文字列で置き換えられます。中括弧内で指定された値も、引用符で囲む要素として追加されます。たとえば、次のとおりです。
<?xml version="1.0"?> <root><event>logString2</event> <event>logString2</event> </root>
IPDRログファイルのテンプレートは、標準IPDR要素のセットを含みます。また、ログデータで置き換えられる変数を含む場合もあります。たとえば、次のとおりです。
<IPDRDoc seqNum="6530" version="1.0"> <IPDRRec info="Novell"/> <IPDR seqNum="${Sequence}" time="${Time}"> <SS id="sms" service="bin"> <SC> <v name="customer_id">${WapID}</v> </SC> <SE> <v name="service">sms-bin</v> </SE> </SS> <UE> <v name="pnummer">${pnummer}</v> </UE> </IPDR> </IPDRDoc>
XMLおよびIPDRログをサポートするために、次の組み込みプロパティが追加されています。これらの各プロパティは、Frameworkサブシステムのconfig.xmlファイルで設定するか、またはEboLogクラスのメソッドを呼び出して設定できます。
XMLおよびIPDRログを使用するサンプルコードは、次のとおりです。
// XML logging sample: private com.sssw.fw.log.EboLog log; log = (EboLog) EboLogFactory.getLog( "XML Test" ); log.addLoggingProvider(EboUniqueXMLFileLoggingProvider.class.getName()); log.audit("xml_file This is my event"); log.removeLoggingProvider(EboUniqueXMLFileLoggingProvider.class.getName()); log2 = (EboLog) EboLogFactory.getLog( "IPDR Test" ); // IPDRF logging sample ... private com.sssw.fw.log.EboLog log2; log2.addLoggingProvider(EboUniqueIPDRFileLoggingProvider.class.getName()); log2.audit("sms_bin555123455"); log2.removeLoggingProvider(EboUniqueIPDRFileLoggingProvider.class.getName());
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...