はじめに

前回の記事のつづき.

Java 開発で, log4j のログをみる機会がこれから増えそうだ.

ログといっても所詮はテキストなので, Emacs を使いたい. そこで, ログ解析に便利そうな, 使えそうな機能をまとめてみた.

とくに, Java の log4j 専用というわけではなく, どんなテキストログの解析にも応用できればいいな.

閲覧

Read Only Mode

ログなので, Read Only でファイルを開きたい.

  • M-x toggle-read-only (C-x C-q) で現在開いているテキストを 読み取り専用にすることができる

  • M-x find-file-read-only で読み取り専用で開くことができる. 解除は, toggle-read-only で.

参考:

(add-to-list 'auto-mode-alist '("\\.log$" . read-only-mode))

Tramp

ログはサーバからダウンロードする. Emacs からサーバに直接乗り込んで開くためには, Tramp を利用する.

tail -f 的な

リアルタイムログ解析のためには, M-x auto-revert-tail-mode を利用. これで, tail -f のようにファイルを更新することが可能になる.

検索

複数ファイル検索: grep/ ag / helm-ag

検索は grep が基本.

最近は, grep よりも高速な検索ができる ag というものもある.

さらには, 絞り込みを helm I/F から利用するための helm-ag もある.

単一ファイル検索: helm-swoop

helm-swoop を利用すると, 一文字打ち込む度に検索が走る. ログサイズが小さいときや, 単一ファイルならば, grep よりも使いやすい.

インクリメンタル検索

isearch (C-s) が基本.

インクリメンタル検索である isearch と helm-swoop をつなぐ, ace-isearch というものもある.

ブックマーク/ ハイライト

Bookmarks をハイライト

行をハイライトできる.気になる行に色をつける.

本当は移動用なのだけれども, 色付けとして利用.

helm-all-mark-rings

C-SPC でマークをした場所を覚えておいて, helm で選択してジャンプできる.

(global-set-key (kbd "M-SPC") 'helm-all-mark-rings)

シンボルをハイライト

highlight-symbol/auto-highlight-symbol

シンボルをハイライトできる.気になる単語に色をつける.

(require 'auto-highlight-symbol-config)
(require 'highlight-symbol)
(setq highlight-symbol-colors '("DarkOrange" "DodgerBlue1" "DeepPink1"))

(global-set-key (kbd "<f3>") 'highlight-symbol-at-point)
(global-set-key (kbd "M-<f3>") 'highlight-symbol-remove-all)

hl-anything

永続的に, ハイライトを保持することが可能になる.

以下の記事の解説が詳しい.

(require 'hl-anything)
(hl-highlight-mode 1)

(global-set-key (kbd "<f2>") 'hl-highlight-thingatpt-local)
(global-set-key (kbd "M-<f2>") 'hl-unhighlight-all-local)

Java

以下参照.