2015年2月9日月曜日

EclipseでGrep Consoleを使って必要なコンソールログだけを表示する

概要

Eclipseのコンソールログはデフォルトだと検索はできますが表示の絞込はできません
絞り込みをするためにGrep Consoleプラグインを利用すると必要なログだけが表示されるようになるのでやってみました

環境

  • Mac OS X 10.8.5
  • Eclipse 4.3 Kepler
  • Grep Console 3.6.1

作業内容

プラグインインストール

Eclipse Marketplaceを使ってインストールすることが可能です

Help -> Eclipse Marketplace

と進みSearchで「grep」と入力します
すると検索結果にGrep Consoleが表示されるのでこれをインストールします
search_result_grep_console.png

インストールを実施するのにライセンスアグリーメントとEclipseの再起動が必要になります

設定

インストールが完了したら早速設定していきます
その前に言語は何でもいいので標準出力する簡単なサンプルコードを作成しておいてください
今回は以下を使います

package test;

public class Test {

    public static void main(String[] args) {
        System.out.println("[DEBUG] test");
        System.out.println("not showing");
        System.out.println("[WARN] test");
        System.out.println("[ERROR] test");
        System.out.println("[FATAL] test");
    }

}

Grep Viewを表示する

そのままのコンソールビューでも使えますが表示の絞り込みをするためにGrep Viewを表示しておきます

Window -> Show View -> Other -> Grep Console -> Grep View

と選択しGrep Viewを表示します

ログに色を付ける

まずログに色を付ける方法です
仕組みは簡単で指定した正規表現にマッチする行を色付けする感じです

Grep Viewが表示されているペインの右側にある(?)マークのボタンを選択します
config_button.png

最初のアクセスだとバージョン情報等が表示されるかもしれません、その場合はOKボタンを押せば設定画面に遷移します

すると設定画面が表示されます
default_config.png
実はもうこの状態で実行しても色がつくようになっています
主要なパーツを説明すると

  • Log Outputはフォルダと言われる概念で色付けのルールは必ずどこかのフォルダに属する必要があります
  • Debug から FatalはExpressionのルールで該当する正規表現の場合に指定された色で指定されたビューにログを表示します
  • 四角とフィルタマークと丸と三角は表示のON/OFFです
    • 四角はExpressionの有効/無効を制御
    • フィルタマークはGrep Viewへの表示を制御
    • 丸はGrep Staticsビューへの表示を制御
    • 三角はトリガーのON/OFF制御
  • 今回、丸と三角のON/OFFについてはここで触れないので詳しく知り方は参考サイトにある公式ドキュメントを参照ください
  • ON/OFFの状態は黒塗りがONの状態、OFFが白抜きの状態です
  • ()は継承で例えば図の場合、Log Outputフォルダに括弧ありで黒塗りの四角になっていますが、この場合はフォルダ以下のExpressionは全部、黒塗り状態として解釈されます
  • 色の指定は先の色が文字の色で後ろの色が背景色です

とりあえずこの状態でサンプルコードを実行してみましょう
以下のように表示されると思います
color_test.png

2行目には何も色付けされていれません
これに色付けしてみましょう
先ほどの設定画面からAdd Folderでフォルダを追加します
Nameは好きな名前を入力してください
チェックボックスはとりあえず全部ONで作成します
create_folder.png

作成したフォルダを選択した状態でAdd Expressionでルールを追加します
Expressionに正規表現のルールを追加します、今回は.*not.*を入力してみます
あとはNameに適当な名前を入力します
create_expression_general.png

他の項目ですが(ちょっと詳しく理解してないですが)

  • Quick expression・・・メインのExpressionよりも優先される正規表現、Quick expressionが含まれていなければそもそも評価されない
  • Unless・・・指定した文字列が含まれていないものに色を付ける
  • Case sensitive・・・チェックがONであれば大文字小文字を区別する

といった感じです
正確には公式ドキュメントを御覧ください

次に隣のタブの「Style & Links」を選択します
ここでどのように色付けするか決定します
左側に現在適用されているスタイルが表示されて右側に適用可能なスタイルの一覧があります
既存のスタイルを適用したい場合は右側のスタイルを選択してAssignをクリックすればOKです
新たにスタイルを追加したい場合はNewを選択して独自のスタイルを作成します
create_new_style.pn.png
Nameに好きなスタイル名を入力してください
下にサンプルが表示されるのでそれを見ながら設定すればいい感じに設置できると思います
問題なければOKをクリックしてスタイルを作成します

作成したスタイルをAssignすればOKです
以下のような感じになると思います
config_style.png

この状態でサンプルコードを実行すると以下のように色付けされていなかった2行目に色がつきます
color_test_origin.png

色付けに関してはこんな感じに設定してください

表示を絞り込む

次に表示を絞り込む方法を紹介します
これはGrep View側に表示されるので絞込の結果はGrep Viewを見てください

先ほどの設定画面を開いてください
表示を絞り込むにはフィルタマークの部分を黒塗り or 白抜きにすればOKです
例えば以下のようにLog Output側だけフィルタマークを黒塗りにします
config_filter.png

この状態で実行してGrep Viewを見てください(通常のコンソールの結果ではなく追加したGrep Viewを見てください)
すると以下のように「not showing」の部分がフィルタ(削除)されて表示されていると思います
filter_result.png

OriginのNot Expressionのほうも黒塗り状態にすれば「not showing」も表示されていることが確認できると思います
コンソールの方には絞込設定をしても常に表示されます

絞込の設定は以上です

最後に

今回の紹介は以上です
これでいちいちファイルに出力してgrepする必要がなくなると思います

ちょっと注意しなければいけないのはこの設定がJavaの実行単位ごとに制御されているという点です
別のサンプルコードを作成したらまたそっちでも表示の制御のON/OFFを設定しなければいけません
FolderやExpression、作成したスタイルは引き継がれます
あとWebアプリ(Tomcat上で動作するアプリなど)のロギングに対しても別の設定が必要かもしれません
(軽く検証してみたらうまく色が付けられませんでした。。。またやり方がわかったら紹介します)
-> Eclipse上でTomcatを起動してコンソールに起動ログが出ている状態でGrep Consoleの設定をすればうまく適用できました

参考サイト

0 件のコメント:

コメントを投稿