UwView v1.1 — 巨大ログを「色」で読む。色分けハイライタと同梱プリセットを実装しました

リリース

大容量テキストビューア UwView(無料・GitHub公開中)の v1.1 を公開しました。目玉は 色分けハイライタです。以前、業界標準の klogg と機能を正直に比べたとき、「複数キーワードの色分けハイライタ」は klogg が持っていて UwView が持っていない、はっきりした負け項目でした。その負け表の1行を、今回そのまま埋めた形になります。

しかも、ただ追いついただけではありません。用途別のプリセットを最初から同梱し、ルールセットのエクスポート/インポートにも対応しました。この記事では、実際の画面で何ができるようになったかを見ていきます。

検証に使っているのは、OpenStreetMap 日本データを変換した 1億行(100,000,000行)の XML ファイルです。この規模でも、色付けは体感で引っかかりません。


検索の「黄色」と、色分けの「赤・青」が同時に効く

まずは基本の一枚です。左が本文、右が検索結果(フィルタ結果)のポップアップ。検索語「和歌山」に 1,129件 ヒットし、前後 ±1 行の文脈付きで一覧表示されています。

1億行の XML を「和歌山」で検索。検索マッチの黄色と、色分けハイライタの赤が同時に表示される

注目してほしいのは、検索マッチの黄色(和歌山)と、色分けハイライタで着けた赤nd という文字列)が、同じ画面に同時に出ている点です。UwView のハイライタは「検索マッチを最優先で描く」設計にしてあるので、いくら色を重ねても、いま検索している語の黄色は必ず一番上に見えます。「色を付けすぎて検索結果が埋もれる」という、この手の機能にありがちな事故が起きません。

もう一つの地味な工夫として、着色は画面に見えている行だけを都度評価しています。だから1億行のファイルでも、スクロールに色付けが追いつかなくなる、ということがありません。


色のルールは、パターンと背景色で組み立てる

色分けの中身は、専用の「色分けハイライタ」ダイアログで管理します。1行が1ルールで、パターン(文字列または正規表現)に対して文字色背景色を割り当てます。

色分けハイライタのルール編集画面。パターン・正規表現・文字色・背景色を行ごとに設定

ポイントは次の通りです。

  • 正規表現に対応正規表現 のチェック)。キャプチャした部分だけを着色することもできます。
  • 大文字小文字の区別Aa)、行全体を塗るかどうかも行ごとに指定できます。
  • ルールは上から順に優先。重なった場合は下の行が後勝ちになります。並び替えは各行の ▲▼ で。
  • 色を使いすぎると逆に見分けづらくなるので、画面下の注記どおり 1画面あたり8〜12色を目安にするのがおすすめです。着色対象は色覚に配慮した32色パレットから選べ、ルールを増やすと自動で色が循環します。

作ったルールセットには名前を付けて保存でき、案件や監視対象ごとに使い分けられます。


「syslog」「Web アクセスログ」用のプリセットを同梱

ここが、単なる klogg 追従にとどまらない部分です。UwView v1.1 はよく使う色分けルールを最初から同梱しています。プリセットを選んで「読込」を押すだけで、その場で色が付きます。

たとえば syslog / Linux プリセットは、emerg / alert / crit / err を赤、warning を橙、notice / info を緑、行頭の PID([数字])や IP アドレスにも色を割り当てた構成です。

syslog / Linux プリセット。重大度(err/warning/notice)や IP アドレスを正規表現で色分け

Web access (HTTP) プリセットは、HTTP ステータスコードを色で読めるようにしたものです。5xx を赤、4xx を橙、3xx を青、2xx を緑にしてあるので、アクセスログを流し見するだけでエラーの塊が目に飛び込んできます。

Web access (HTTP) プリセット。5xx/4xx/3xx/2xx のステータスコードを色分け

このプリセット群はそのまま使ってもいいし、自分好みに書き換えてもいい。仕上げたルールセットは .uwvhl ファイルとしてエクスポートでき、別のマシンやチームメンバーへインポートで共有できます。「現場ごとの色分け設定」を配って回れる、というわけです。


検索履歴・定義済みフィルタも同時に強化

色分けと並んで、v1.1 では検索まわりも底上げしました。検索履歴を最大50件まで覚えてオートコンプリートし、よく使う検索は★で保存してドロップダウンから即実行できます。これも以前は klogg 優位だった「定義済みフィルタ/検索履歴の保存」を埋める改善です。

負け表に残っている QuickFind(ビュー内インクリメンタル検索)Follow(tail)中の検索結果の自動更新状態・セッションの復元は、引き続き次版以降の最優先候補としてリポジトリで公開しています。隠さず並べて、順番に埋めていく方針は変わりません。

ただし、埋め方には一つこだわりがあります。負けている項目を入れるときも、klogg の実装をそのまま写すのではなく、「自分が毎日使って気持ちいい」と思える形に設計し直してから載せる、ということです。今回の色分けハイライタがまさにそれで、単に色を付けられるだけでなく、「検索の黄色が常に最前面に残る」「用途別プリセットを同梱」「1億行でも可視行だけを都度評価して速度を落とさない」といった、実際に巨大ログを触っていて欲しくなった作りを優先しました。残りの負け項目も、チェックリストを消すためではなく、使って本当に良くなる形で埋めていきます。


上位版 UwView Pro について(発売中)

なお、「巨大ファイルをいつでも瞬時に表示・検索、索引を保存して2回目以降は行番号付きで瞬時に開く・検索が最大約9倍・ログを約1/9で保管してそのまま開ける」商用版 UwView Pro を発売しました(全OS対応:Windows/macOS/Linux・買い切り $129/月額 $9。性能の実測はこちらの記事)。今回の色分けハイライタや同梱プリセットは Pro でも同じように使えます。→ https://uvp.y42u.net/pro/


まとめ

  • UwView v1.1 で 色分けハイライタを実装。klogg 優位だった負け項目の1行を埋めました。
  • 正規表現・文字色/背景色・ルール優先度・名前付き保存に対応。検索マッチの黄色は常に最前面で、1億行でも色付けが速い。
  • syslog / Web アクセスログなどのプリセットを同梱し、.uwvhl でエクスポート/インポート共有が可能。
  • 検索履歴・定義済みフィルタも強化。残る負け項目(QuickFind・Follow連動検索・状態復元)は公開したまま、klogg を真似るのではなく「自分が使いやすい形」に設計して順次埋めていきます。

関連記事

出典

  • klogg 公式ドキュメント https://github.com/variar/klogg/blob/master/DOCUMENTATION.md
  • amru195704/UwView(GitHub) https://github.com/amru195704/UwView

開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。機能の有無は各バージョン時点の確認であり、今後のアップデートで変わる可能性があります。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。

コメント

タイトルとURLをコピーしました