- Home
- LogProcessor
LogProcessorは各種ログやプログラム出力テキスト(デバッグ出力等)を体系的に編集・加工するツールです。
各種ログやプログラムのデバッグログ等はある程度フォーマット化された数種類のメッセージが時系列的に羅列されている為、
そのままでは機械的に統計を取ったり解析する事が困難である。
このツールによりログの必要な部分をピックアップして体系的な編集加工の上、CSV形式ファイルに出力する事ができる。
加工手順作成に際してはログファイルを確認しながら編集方法(レシピ)を作成できる。
また、レシピによって加工されたデータを再度加工するレシピ階層を構築する事で高度な編集が可能である。
作成されたレシピファイルを基に別ツールのLogProcesserBatchによる適時実行も可能。
ログファイルのみリモートサーバ上のファイルをFTP受信し加工が可能。(Ver2から)
ページを意識した相対位置のテキストを拾いながら出力ファイルを編集
日々コンピュータシステムから発行される帳票のExcel等への転記作業自動化などに便利
ログ内容を確認しながらレシピを作成し、レシピファイルとして保存。
加工結果をCSVファイルで作成。
ログファイルとレシピファイルを指定し実行することでCSVファイルを作成。
java -jar LogProcessor.jar CharCode=ログ文字コード LogMax=ログ最大読込件数
java -jar LogProcessor.jar CharCode=ログ文字コード LogMax=ログ最大読込件数 FtpParm=FTPパラメータ名
ログ文字コード:MS932(省略時)、SJIS、UTF-8 が指定可能
ログ最大読込件数:省略時5,000件
件数が多くなると処理が重たくなる為レシピ作成に必要な件数を設定
結果ファイル出力時はこの制限に関わらず全ログデータを処理する
FTPパラメータ名:リモートサーバ上のログを処理する場合に指定。
(ローカルの場合は指定しない)
設定方法については「FTPパラメータ」を参照。
リモートサーバの場合は実行ディレクトリ配下に「temp」ディレクトリを作成!
レシピが無いので空の画面が出る。
この後ファイルメニューより「新規レシピ」または「レシピ読込」を選び、
「Logファイル読込」でログを読み込ませる。
①レシピ層タブ・・レシピ定義層を選んで操作
変更されているレシピ層にはタイトルの先頭に「*」を付加。
右クリック・メニュー「レシピ層変更」でレシピ層名の変更。
「レシピ層削除」でレシピ層を削除。
②ログ表示域・・親レシピ層の定義に沿った(フィルタリング)表示がされる
(ファイルメニュー・「ログファイルの読込」が必要)
③情報域・・マスク文字列およびログ表示域上のカーソル位置を表示
④レシピ設定域・・各レシピタイプに応じた定義項目で展開される
「ファイル」メニュー・・レシピ/ログファイル等の操作
「編集」メニュー・・「元に戻す」「検索」操作。
ログから必要な部分のデータを拾い集める為の定義。
レシピは階層式で構築する。それぞれ親レシピが指定でき二次・三次加工が可能。
レシピタイプとして以下の3種類がある。
ログを任意の文字列で区切りグループ分け、データ抽出を定義する
必要な行を特定しデータ抽出を定義
親レシピを含めて拾われている項目の選択・順序を指定し、出力CSVファイルのレイアウトを定義する
ログは時系列で発生する事象についての情報を複数行に渡って記録されている為、 目視やプログラムでの解析を行う際の障害となる。
LogProcessorではそのログを見やすく(プログラムで処理しやすく)するフラットCSV形式に加工する事が出来る。 そのために階層式にレシピ定義を与える必要が有る。
以下はある商店の仕入れ・売上実績を処理するプログラムが出力したログで、 レシピ階層にイメージしている。
まず、月範囲を区分けするための「月セグメント層」を定義し、 その子階層として「日セグメント層」を定義し、 その子階層として明細行層を定義する。
月単位処理が出力している「<functionA>」を区切りテキストパターンとして月毎のログセグメントとする
複数行を範囲とするためセグメントレシピで定義
抽出項目として「月」を子レシピ層に引き継ぐ。
日単位処理が出力している「<functionB>」を区切りテキストパターンとして日毎のログセグメントとする
親セグメントである月セグメント単位に日セグメント分解する。
複数行を範囲とするためセグメントレシピで定義
抽出項目として「日」を子レシピ層に引き継ぐ
明細処理が出力している「<functionC>」を含んでいる1行を明細行とする
1行単位なので行レシピで定義
抽出項目として仕入・売上を表す「区分」、「品名」「数量」を子レシピ層に引き継ぐ
親レシピ層で抽出された「月」「日」「区分」「品名」「数量」を最終出力形式に編集する。
キー項目、集計方法を指定することで合計・平均等の集計が可能(Ver2から)