はじめに
前回の記事のつづき.
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
永続的に, ハイライトを保持することが可能になる.
- https://github.com/boyw165/hl-anything
- M-x hl-save-highlights
- M-x hl-restore-highlights
以下の記事の解説が詳しい.
(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
以下参照.