Intellij IDEAにはデフォルトでログファイルをハイライトするIdeologというプラグインが入っています。こいつを使おうとしてもいまいち上手くいかなかったので、調査結果の簡単なまとめ。
基本的なコンセプトとしては、
- ログのフォーマットを指定
- ハイライトするパターンを指定
を設定することにより、ログを解析する。
設定
Editor -> Log Highlighting (Ideolog)
-
Log formats
を変更しても、ファイルを開きなおすか編集するまで表示が更新されない場合がある。こんなくだらないことでハマったので注意。Patterns
は反映される模様。 - ログファイルとして認識されるのは、IntelliJのに
Log
として登録されているタイプ。デフォルトでは*.log
のみ。Editor -> File Types
から設定可能。
ログフォーマット
Enabled
そのフォーマットが有効かどうか。
Name
任意の名前
Message pattern
ログとして認識する正規表現。
Message start pattern
ログの開始を表す正規表現。パフォーマンス上の理由から使われる。
Time format
時刻のパターン。yyyy-MM-dd
など。
Time capture group
Message patternにおける、時刻の正規表現グループのインデックス。もし時刻を持たない場合、0を指定する。
Severity capture group
Message patternにおける、深刻さを表す正規表現グループのインデックス。一般的にはログレベル(INFO
、WARN
)を指定? もし項目を持たない場合、0を指定。
Category capture group
Message patternにおける、ログのカテゴリーを表す正規表現グループのインデックス。もし項目を持たない場合、0を指定。ログファイルとソースコードのマッピングに使われるらしいが、『カテゴリー』ってなんだろう……。
パターン
Pattern
ハイライトを行う正規表現を指定する。この正規表現は大文字小文字を無視する(iフラグが指定された状態?)。この正規表現はMessage pattern
の各グループに対して評価される模様。もしログに設定されているいずれのMessage pattern
もマッチしなかった場合、デフォルトで行全体がマッチしたものとみなされる。そのためハイライトのパターンを適当に指定すると想定外の個所がハイライトされるので注意。
アクション
-
Highlight line
- 行全体をハイライトする。 -
Highlight field
- マッチしたグループをハイライトする。ここでいうグループはMessage pattern
におけるグループである模様。 -
Highlight match
- マッチした個所をハイライトする。Wikiには「currently not working」と記述あり。2012年と古い記述なので今ではどうかわからないが、実際試したところうまく動かなかった。
Show on stripe
スクロールバーの下に表示されるエラー行の表示に反映するかどうかの設定……のようなのだが、エラー以外では動作が確認できなかった。情報求む。
フィルター
正規表現にマッチした個所を隠す……らしいのだが^.*$
を設定しても何も変化が起きなかった。調べても情報が全然出てこない。情報求む。
使い方
デフォルトでパイプ区切りパターンが設定されているので、適当なログファイルをでっちあげてみたところ。パターンは手動で設定している(デフォルトでWARN
がマッチしない!)。
パターンで設定した個所がハイライトされ、スクロールバーの下にエラー行が表示されているのが確認できる。
インテンション・アクションから様々な操作ができる。デフォルトのショートカットはalt + enter
。
Toggle time hilighting
時刻の表示をハイライトする。カーソルを時刻に合わせていないとメニューに表示されない。
わざわざパターンまで指定したのだからもっと賢い機能があるのかと思いきや、そんなことはなかった。情報求む。
Show only line containing '...'
カーソル下の単語を含まない行を隠す。ユーザー名などでログを抽出するのに使える。
Hide line containing '...'
Hilight '...'
Hilight this column
カーソル下のカラムをハイライトする機能……に思えるが、なぜか全体がハイライトされた。意味が分からない。
Jump to source
ソースコードに移動する。移動先はMessage pattern
のseverity
およびcategory
に基づいて推測されるらしい。どのように推測しているのかについては、ドキュメンテーションは発見できなかった。
まとめ
- パターンによる色付けはなかなか実用的
- それ以外は微妙
- ドキュメンテーションは大事