第16章

XMLおよびIPDRログプロバイダの使用

この章では、exteNd Director付属のXMLおよびIPDRログプロバイダの使用について説明します。

この章は、次の節で構成されています。

 
Top of page

XMLおよびIPDRログプロバイダについて

exteNd Directorは標準ログ機能に加え、次のものを生成できる2つのログプロバイダを含みます。

For more information    IPDRは、リソースとサービス使用状況に関する情報を交換するために、開かれた拡張可能な記録形式を定義します。IPDRの詳細については、IPDR.org Webサイトを参照してください。

XMLおよびIPDRログプロバイダの動作は、exteNd Directorにサポートされる標準ログメカニズムの動作に似ています。

For more information    標準ログメカニズムの使用方法の詳細については、を参照してください。

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>")

For more information    組み込みプロパティの詳細については、組み込みプロパティを参照してください。

 
Top of page

XMLテンプレートの操作

XMLログファイルのテンプレートは、1つまたは複数のXML要素、およびログデータで置き換える変数を指定します。たとえば、XMLファイルの形式は次のようになります。

  <?xml version="1.0"?>
  <root>${event}</root>

新しいログファイルが作成されると、テンプレートを使用してそのファイルをフォーマットします。${}変数は実際のログ文字列で置き換えられます。中括弧内で指定された値も、引用符で囲む要素として追加されます。たとえば、次のとおりです。

  <?xml version="1.0"?>
  <root><event>logString2</event>
  <event>logString2</event>
  </root>

 
Top of page

IPDRテンプレートの操作

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>

 
Top of page

組み込みプロパティ

XMLおよびIPDRログをサポートするために、次の組み込みプロパティが追加されています。これらの各プロパティは、Frameworkサブシステムのconfig.xmlファイルで設定するか、またはEboLogクラスのメソッドを呼び出して設定できます。

プロパティ

説明

EboLogメソッド

logFileTemplate

使用されるログファイルテンプレート

Frameworkのconfディレクトリに配置されたテンプレートの名前

デフォルト値:xml-file.tpl

setLogFileTemplate(StringlogFileTemplate)

addLogDateInfo

ログ文字列にログ日付を追加する必要があるかどうか示します

true/false

デフォルト値:true

setAddLogDateInfo(StringaddLogDateInfo)

logDateFormatMask

ログ日付情報に使用されるマスク

java.text.SimpleDateFormat mask

デフォルト値:dd/MM/yyHH:mm:ss

setLogDateFormatMask(StringlogDateFormatMask)

addLogTimeInfo

ログ文字列にログ時間を追加する必要があるかどうか示します

true/false

デフォルト値:true

setAddLogTimeInfo (StringaddLogTimeInfo)

logDateFormatMask

ログ文字列にログTimeを追加する必要があるかどうか示します

java.text.SimpleDateFormat mask

デフォルト値:yyyy-MM-dd\qT\qHH:mm:ss\qZ\q

setLogTimeFormatMask (StringlogDateFormatMask)

addLogSequenceInfo

ログ文字列に一意のシーケンスを追加する必要があるかどうか示します

true/false

デフォルト値: true

setAddLogSequenceInfo (StringaddLogSequenceInfo

 
Top of page

サンプルコード

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 ...