大きなログファイルに適切なログ表示モードはありますか?


11

私が使用しているログファイルの一部はかなり大きい(> 200Mb)が、Emacsで参照すると便利です。現在のところ、デフォルトではEmacsはすべてを遅くするlog4jモードを有効にしようとします。私が本当に必要なのは、以下の軽量ビューアです。

  • 元に戻すモードを無効にしました
  • ログファイルが更新されたときに自動復帰できます
  • 更新時にログの末尾を追跡できます

理想的には、閲覧しながらログファイルのごく一部をマッピングするだけでよいでしょう。そのようなログモードはありますか?


3
emacsの回答ではありませんが、tmuxをシンプルなテール-fと一緒に使用することで最良の解決策が得られることがわかりました。tmuxを使用すると、ログを停止し、バインディングのようなemacsを使用してログを検索できます。私のログファイルは通常2 GB以上であり、正常に動作します。あるいは、Mx shell + tail -f +フォントロックを解除するのも良い方法です。
Jordon Biondo 2015年

1
正確にあなたが求めているものではありませんが、おそらくM-x fundamental-mode速度の点でlog4j-modeよりも改善されるでしょう。
レゴシア2015年

@legoscia:ええ、私はすでに手動でテキストモードに切り替えています。
stsquad 2015年

私が通常この場合に行うこと:@JordonBiondoが提案したものと同様ですがtail、の代わりにポケットベルを使用していcat file.log | lessます。これには、一度に行数を検索して表示するなど、すべてのページャーコマンドを使用できるという利点があります。
wvxvw

また、これ:github.com/mbriggs/emacs-pagerブックマークに登録しましたが、使用しませんでした...
wvxvw

回答:


7

これは私が使用するものです。emacsを遅くする可能性のあるすべてを無効にし、バッファを読み取り専用にし、auto-revert-tail-modeを設定します。

;; automagically tail log files
(add-to-list 'auto-mode-alist '("\\.log\\'" . auto-revert-tail-mode))

(defun etc-log-tail-handler ()
  (end-of-buffer)
  (make-variable-buffer-local 'auto-revert-interval)
  (setq auto-revert-interval 1)
  (auto-revert-set-timer)
  (make-variable-buffer-local 'auto-revert-verbose)
  (setq auto-revert-verbose nil)
  (read-only-mode t)
  (font-lock-mode 0)
  (when (fboundp 'show-smartparens-mode)
    (show-smartparens-mode 0)))

(add-hook 'auto-revert-tail-mode-hook 'etc-log-tail-handler)

すべてのauto-revert-tail-modeバッファーに対してemacsがこのように動作しないようにするには、ファイルが実際にetc-log-tail-handlerの上部にある.logで終了することを確認するチェックを追加するか、またはあなたが好きな他のどんな基準でも。


2

私は数年前からhttps://github.com/re5et/itailを使用して成功しています

独自のバッファで開くテールモードです。


さらに、必要に応じてESHELLを十分に適合させて、ライニンゲンおよびその他のCLIビルドツールを適切に適切に実行し、開発ビルドの出力をバッファーで簡単に表示できるようにしました。
huntar

コメントするのではなく、自分の投稿を編集して追加情報を含めてください。(削除した後、コメントを削除できます。)
Scott Weldon

@ScottWeldon追加情報はコメントとしてより適切だと思いました
huntar

コメントは、説明、建設的な批判、およびマイナーまたは一時的な情報のためのものです。それはマイナーとしての資格があるかもしれませんが、私はそれが編集として同様に、うまくいかなくてもうまくいくと思います。
Scott Weldon

私はこれを少し試してみましたが、データレートが高い場合は問題があるように見えますが、かなり気に入っています。
stsquad

0

グローバルフォントロックをnilに設定すると、速度が向上することも確認しました

(global-font-lock-mode -1)

そして多分

(setq jit-lock-defer-time 0.05)

スクロール速度が向上します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.