Büyük günlük dosyaları için iyi bir günlük görüntüleme modu var mı?


11

Üzerinde çalıştığım bazı günlük dosyaları oldukça büyük (> 200Mb) ancak Emacs'ta bunlara göz atmak güzel olurdu. Şu anda Emacs varsayılan olarak her şeyi yavaşlatan log4j modunu etkinleştirmeye çalışıyor. Gerçekten ihtiyacım olan hafif bir görüntüleyici:

  • devre dışı bırakma geri alma modu
  • günlük dosyası güncellendiğinde otomatik olarak geri dönebilir
  • güncellendiğinde günlüğün kuyruğunu takip edebilir

İdeal olarak, gezinirken günlük dosyasının küçük bir bölümünde harita oluşturmak iyi olur. Böyle bir günlük modu var mı?


3
Bir emacs cevabı değil, ama basit bir kuyrukla tmux kullanmanın -f bana en iyi çözümü verdiğini buldum, tmux kullanmanız günlüğü durdurmanıza ve ciltler gibi emacs kullanarak etrafınızda arama yapmanıza izin verecektir. Günlük dosyalarım genellikle 2GB ve üstüdür ve iyi çalışır. Alternatif olarak Mx kabuk + kuyruk -f + yazı tipi kilidi yok güzel bir çözümdür.
Jordon Biondo

1
Tam olarak ne istediğini değil, ama belki de M-x fundamental-modehız açısından log4j modu üzerinde bir gelişme olacaktır.
legoscia

@ legoscia: evet zaten yardımcı olan metin moduna geçiyorum.
stsquad

Ben genellikle bu durumda ne yapıyorum: @JordonBiondo önerilen ne benzer, bunun yerine tail, örneğin bir çağrı cihazı kullanıyorum cat file.log | less. Bu, bir seferde satır sayısını arama ve görüntüleme gibi tüm çağrı komutlarını kullanabilme avantajına sahiptir.
wvxvw

Ayrıca, bu: github.com/mbriggs/emacs-pager Yer imi koyduğumu buldum, ancak kullanmadım ...
wvxvw

Yanıtlar:


7

Ben bunu kullanıyorum. Emakları yavaşlatabilen her şeyi devre dışı bırakır, arabelleği salt okunur yapar ve otomatik geri-kuyruk modunu ayarlar:

;; 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)

Emacs'ın tüm otomatik geri alma kuyruğu modu arabellekleri için bu şekilde davranmasını istemiyorsanız, dosyanın etc-log-tail-handler'ın üst kısmında .log ile sonlandığından emin olmak için bir kontrol ekleyebilir veya kullanabilirsiniz. başka hangi kriterleri seviyorsan.


2

Birkaç yıldır https://github.com/re5et/itail'i başarıyla kullanıyorum .

Kendi tamponunda açılan bir kuyruk modudur.


Ek olarak, ESHELL'i Leiningen ve diğer CLI oluşturma araçlarını rahatça çalıştıracak ihtiyaçlarıma yeterince adapte ettim, böylece geliştirme geliştirme çıktımı bir arabellekte kolayca görüntüleyebiliyorum.
huntar

Yerine yorumlama , lütfen düzenlemek ek bilgileri içerecek şekilde kendi yayınını. (Bunu yaptıktan sonra yorumunuzu silebilirsiniz.)
Scott Weldon

@ScottWeldon Ek bilgilerin bir yorum olarak daha uygun olduğunu düşündüm
Hun

Yorumlar açıklama, yapıcı eleştiri ve küçük veya geçici bilgiler içindir. Küçük olarak nitelendirilebilse de, daha iyi olmasa da bir düzenleme olarak da işe yarayacağını düşünüyorum.
Scott Weldon

Bu biraz oynadım ve veri hızı yüksek olduğunda acı gibi görünse de oldukça beğendim.
stsquad

0

Küresel yazı tipi kilidini nil olarak ayarlarsanız, hız geliştirmelerini de görmeniz gerektiğini okudum

(global-font-lock-mode -1)

ve belki

(setq jit-lock-defer-time 0.05)

kaydırma hızlarını artıracak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.