LogViewer
このサンプルは、Swing コンポーネントを使用してユーザー・インターフェースをレンダリングするログ表示ツールの作成方法を示します。
以下のコマンド行を入力して、サンプルを実行します。
java LogViewer
main メソッドがコンストラクターを呼び出し、コンストラクターがログ表示ツールのユーザー・インターフェースをセットアップします。UI には、「システム/ルーターの選択 (Select system/router)」、「ログオン」、および「ログオフ」の各選択項目を持つシステム・メニューがあります。また、ログ・メニューには、「ログの選択 (Select Log)」、「新規ログ索引の作成 (Create new log index)」、「ログの照会 (Query Log)」、および「開示ログ・フィールドのリスト (List Exposed Log Fields)」の各選択項目があります。選択項目は、以下で説明するように処理されます。
システム/ルーターの選択 (Select system/router)
接続先のシステムと接続ポイントをユーザーが選択できます。入力は以下の形式である必要があります。
server_name:port_number/connectionPoint_name
ログオン
ユーザー名とパスワードを収集し、この情報を「システム/ルーターの選択 (Select system/router)」で選択された connectionPoint_URL とともに VWSession コンストラクターに渡します。
ログオフ
VWSession.logoff を呼び出して、システム・リソースを解放します。
ログの選択 (Select Log)
VWSession.fetchEventLogNames を使用するログの名前を含んだ文字列の配列を作成します。ダイアログ・ボックスを表示して、ログの名前を選択するようにユーザーに要求し、その名前の VWLog オブジェクトを取得して、ユーザーに通知します。
ログの照会 (Query Log)
VWLog.fetchLogDefinition を使用する VWLogDefinition オブジェクトを取得し、VWLogDefinition.getIndexes を使用して VWIndexDefinition オブジェクトの配列を作成します。ダイアログ・ボックスに、(VWIndexDefinition オブジェクトを使用して作成された) 索引照会のための索引の選択リストが表示されます。
次に、照会方法を選択するかキャンセルするかをユーザーにたずねるダイアログが表示されます。ユーザーが「基本照会 (Basic Query)」または「索引ベース照会 (Index-Based Query)」を選択すると、VWLogQuery オブジェクトが作成されます。
「索引ベース照会 (Index-Based Query)」が選択された場合、もう 1 つのダイアログ・ボックスが表示されます。このダイアログ・ボックスを使用すると、選択した索引の各コンポーネント・フィールドについて、ユーザーは最大値と最小値を選択できます。 VWIndexDefinition.getFieldNames が使用されて、文字列配列に索引フィールド名のソート済みリストが読み込まれます。引数として最小配列と最大配列が VWLog.startQuery に渡されて、VWLogQuery オブジェクトが取得されます。
「基本照会 (Basic Query)」方法が選択された場合、VWLogQuery オブジェクトが直ちに作成され、VWLog.startQuery の最小および最大のオブジェクト配列が NULL に設定されます。VWLogElement オブジェクトが使用されて、VWLogQuery オブジェクトからの情報を ArrayList オブジェクトに読み込みます。このデータ配列が Swing コンポーネントに渡され、この Swing コンポーネントにより、イベント・タイプ、シーケンス番号、およびタイム・スタンプが表形式で、ログ・エレメントごとに 1 行で表示されます。
新規ログ索引の作成 (Create new log index)
開示ログ・フィールドの索引は、データベースの索引同様、照会の高速化に役立ちます。「新規ログ索引の作成 (Create new log index)」が選択されると、LogViewer は VWSystemConfiguration と VWLogDefinition を使用して索引情報を処理します。ログ索引の作成は、VWSession.fetchSystemConfigurationを使用して VWSystemConfiguration オブジェクトを、また VWLog.fetchLogDefinition を使用して VWLogDefinition オブジェクトを作成することから始まります。
索引を選び名前を指定するようユーザーに指示するダイアログ・ボックスが表示されます。この名前が、開示フィールド名の文字列配列 (VWLogDefinition.getFields を使用して VWExposedFieldDefinition オブジェクトを取得し、次に VWExposedFieldDefinition.getName を使用して開示フィールド名を返す) とともに VWLogDefinition.createIndexDefinition に渡されます。ログ定義の索引が作成されます。
次に、VWSystemConfiguration.updateLogDefinition を使用して、新しいログ定義でシステム構成が更新されます。構成は、VWSystemConfiguration.commit を使用してコミットする必要があります。
開示ログ・フィールドのリスト (List Exposed Log Fields)
現在選択されているログ内のすべての開示フィールドのリストを作成します。VWLogDefinition オブジェクト、VWExposedFieldDefinition オブジェクト配列、および開示フィールド名の文字列配列が作成されます。VWLog.fetchLogDefinition がログ定義オブジェクトを読み込み、VWLogDefinition.getFields が開示フィールドの配列を読み込みます。開示フィールドの名前が文字列配列にコピーされます。選択したログの開示フィールドがダイアログ・ボックスに開示されます。