Чи існує гідний режим перегляду журналів для великих журнальних файлів?


11

Деякі файли журналів, з якими я працюю, досить великі (> 200Mb), але було б непогано переглядати їх у Emacs. На даний момент Emacs за замовчуванням намагається ввімкнути режим log4j, що просто сповільнює все. Що мені дійсно потрібно - це легкий глядач, який:

  • відключений режим скасування
  • може автоматично відновити, коли файл журналу оновлено
  • може стежити за хвостом журналу, коли він оновлюється

В ідеалі непогано було б просто відобразити невелику частину файлу журналу під час перегляду. Чи існують такі режими журналу?


3
Не відповідь на emacs, але я виявив, що використання tmux з простим хвостом -f дало мені найкраще рішення, використання tmux дозволить вам зупинити журнал і шукати навколо нього за допомогою emacs, як прив'язки. Мої файли журналів зазвичай перевищують 2 Гб, і він працює добре. Крім того, оболонка Mx + хвіст -f + блокування шрифту - приємне рішення.
Джордон Біондо

1
Не зовсім те, про що ви просите, але, можливо, M-x fundamental-modeце було б покращення щодо log4j-режиму щодо швидкості.
legoscia

@legoscia: так, я вже вручну перейшов у текстовий режим, що допомагає.
stsquad

Що я зазвичай роблю в цьому випадку: аналогічно тому, що запропонував @JordonBiondo, за винятком того, що я використовую пейджер замість tail, тобто cat file.log | less. Це має перевагу в тому, що можна використовувати всі команди пейджера, такі як пошук та показ кількості рядків одночасно.
wvxvw

Також це: github.com/mbriggs/emacs-pager Я виявив, що я це зробив із закладками, але не використовував ...
wvxvw

Відповіді:


7

Це те, що я використовую. Це вимикає все, що може сповільнити emacs, робить буфер лише для читання та встановлює режим автоматичного повернення-хвоста:

;; 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 поводився таким чином для всіх буферів автоматичного повернення-хвоста, ви можете додати чек, щоб переконатися, що файл фактично закінчується .log у верхній частині etc-log-tail-handler, або використовувати будь-які інші критерії вам подобаються.


2

Я успішно використовую https://github.com/re5et/itail вже пару років.

Це хвостовий режим, який відкривається у власному буфері.


Крім того, я достатньо адаптував ESHELL до моїх потреб, щоб зручно запустити Leiningen та інші інструменти для збирання CLI досить добре, щоб я міг легко переглядати свої результати складання розробки в буфері.
мисливець

Замість коментарів , будь ласка, відредагуйте власне повідомлення, щоб включити додаткову інформацію. (Після цього ви можете видалити свій коментар.)
Скотт Уелдон,

@ScottWeldon Я подумав, що додаткова інформація є більш доречною як коментар
huntar

Коментарі є для роз'яснення, конструктивної критики та незначної чи перехідної інформації. Хоча він може бути кваліфікованим як незначний, я думаю, він би працював так само добре, якщо не краще, як редагування.
Скотт Велдон

Я трохи пограв з цим, і мені це дуже подобається, хоча воно, мабуть, страждає, коли швидкість передачі даних висока.
stsquad

0

Я читав, що якщо встановити глобальне блокування шрифту на нуль, ви також повинні побачити підвищення швидкості

(global-font-lock-mode -1)

а може, й

(setq jit-lock-defer-time 0.05)

покращить швидкість прокрутки

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.