LogProcessor

LogProcessorは各種ログやプログラム出力テキスト(デバッグ出力等)を体系的に編集・加工するツールです。

LogProcessor

はじめに

各種ログやプログラムのデバッグログ等はある程度フォーマット化された数種類のメッセージが時系列的に羅列されている為、 そのままでは機械的に統計を取ったり解析する事が困難である。
このツールによりログの必要な部分をピックアップして体系的な編集加工の上、CSV形式ファイルに出力する事ができる。
加工手順作成に際してはログファイルを確認しながら編集方法(レシピ)を作成できる。
また、レシピによって加工されたデータを再度加工するレシピ階層を構築する事で高度な編集が可能である。 作成されたレシピファイルを基に別ツールのLogProcesserBatchによる適時実行も可能。
ログファイルのみリモートサーバ上のファイルをFTP受信し加工が可能。(Ver2から)

適用例

概要

LogProcessor

LogProcessor起動

  • 形式1 ログファイルがローカルにある場合

    java -jar LogProcessor.jar CharCode=ログ文字コード LogMax=ログ最大読込件数

  • 形式2 ログファイルがリモートサーバにある場合

    java -jar LogProcessor.jar CharCode=ログ文字コード LogMax=ログ最大読込件数 FtpParm=FTPパラメータ名

ログ文字コード:MS932(省略時)、SJISUTF-8 が指定可能

ログ最大読込件数:省略時5,000件

  件数が多くなると処理が重たくなる為レシピ作成に必要な件数を設定

  結果ファイル出力時はこの制限に関わらず全ログデータを処理する

FTPパラメータ名:リモートサーバ上のログを処理する場合に指定。
  (ローカルの場合は指定しない)
  設定方法については「FTPパラメータ」を参照。
  リモートサーバの場合は実行ディレクトリ配下に「temp」ディレクトリを作成!

起動直後の画面

起動直後の画面

レシピが無いので空の画面が出る。
この後ファイルメニューより「新規レシピ」または「レシピ読込」を選び、 「Logファイル読込」でログを読み込ませる。

画面の説明

画面の説明

①レシピ層タブ・・レシピ定義層を選んで操作

 変更されているレシピ層にはタイトルの先頭に「*」を付加。

 右クリック・メニュー「レシピ層変更」でレシピ層名の変更。
  「レシピ層削除」でレシピ層を削除。

ログ表示域・・親レシピ層の定義に沿った(フィルタリング)表示がされる
 (ファイルメニュー・「ログファイルの読込」が必要)

③情報域・・マスク文字列およびログ表示域上のカーソル位置を表示

④レシピ設定域・・各レシピタイプに応じた定義項目で展開される

「ファイル」メニュー・・レシピ/ログファイル等の操作

「編集」メニュー・・「元に戻す」「検索」操作。

レシピについて

ログから必要な部分のデータを拾い集める為の定義。

レシピは階層式で構築する。それぞれ親レシピが指定でき二次・三次加工が可能。

レシピタイプとして以下の3種類がある。

レシピ階層について

ログは時系列で発生する事象についての情報を複数行に渡って記録されている為、 目視やプログラムでの解析を行う際の障害となる。

LogProcessorではそのログを見やすく(プログラムで処理しやすく)するフラットCSV形式に加工する事が出来る。 そのために階層式にレシピ定義を与える必要が有る。

以下はある商店の仕入れ・売上実績を処理するプログラムが出力したログで、 レシピ階層にイメージしている。

レシピ階層イメージ

まず、月範囲を区分けするための「月セグメント層」を定義し、 その子階層として「日セグメント層」を定義し、 その子階層として明細行層を定義する。