Existe-t-il un mode d'affichage des journaux décent pour les fichiers journaux volumineux?


11

Certains des fichiers journaux avec lesquels je travaille sont assez volumineux (> 200 Mo), mais ce serait bien de les parcourir dans Emacs. Pour le moment, par défaut, Emacs tente d'activer le mode log4j, ce qui ralentit tout. Ce dont j'ai vraiment besoin, c'est d'une visionneuse légère qui:

  • mode d'annulation désactivé
  • peut revenir automatiquement lorsque le fichier journal est mis à jour
  • peut suivre la queue du journal lors de sa mise à jour

Idéalement, ce serait bien de mapper une petite partie du fichier journal pendant que vous parcourez. Existe-t-il de tels modes de journalisation?


3
Pas une réponse emacs, mais j'ai trouvé que l'utilisation de tmux avec une simple queue -f m'a donné la meilleure solution, l'utilisation de tmux vous permettra d'arrêter le journal et de le rechercher en utilisant emacs comme des liaisons. Mes fichiers journaux sont généralement supérieurs à 2 Go et cela fonctionne bien. Alternativement, Mx shell + tail -f + no font lock est une bonne solution.
Jordon Biondo

1
Pas exactement ce que vous demandez, mais ce M-x fundamental-modeserait peut -être une amélioration par rapport au mode log4j en termes de vitesse.
legoscia

@legoscia: oui, je suis déjà passé manuellement en mode texte, ce qui aide.
stsquad

Ce que je fais habituellement dans ce cas: similaire à ce que @JordonBiondo a suggéré, sauf que j'utilise un téléavertisseur au lieu de tail, c'est-à-dire cat file.log | less. Cela a l'avantage de pouvoir utiliser toutes les commandes du pager, telles que la recherche et l'affichage du nombre de lignes à la fois.
wvxvw

En outre, ceci: github.com/mbriggs/emacs-pager J'ai trouvé que je l'ai mis en signet, mais je n'ai pas utilisé ...
wvxvw

Réponses:


7

C'est ce que j'utilise. Il désactive tout ce qui pourrait ralentir emacs, rend le tampon en lecture seule et configure le mode auto-revert-tail:

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

Si vous ne voulez pas qu'emacs se comporte de cette façon pour tous les tampons en mode auto-revert-tail, vous pouvez ajouter une vérification pour vous assurer que le fichier se termine bien par .log en haut de etc-log-tail-handler, ou utiliser quels que soient les autres critères que vous aimez.


2

J'utilise https://github.com/re5et/itail avec succès depuis quelques années.

C'est un mode de queue qui s'ouvre dans son propre tampon.


De plus, j'ai suffisamment adapté ESHELL à mes besoins pour exécuter confortablement Leiningen et d'autres outils de build CLI de manière à pouvoir visualiser facilement la sortie de ma build de développement dans un tampon.
huntar

Au lieu de commenter , veuillez modifier votre propre message pour inclure les informations supplémentaires. (Après cela, vous pouvez supprimer votre commentaire.)
Scott Weldon

@ScottWeldon Je pensais que les informations supplémentaires étaient plus appropriées en tant que commentaire
huntar

Les commentaires concernent des éclaircissements, des critiques constructives et des informations mineures ou transitoires. Bien qu'il puisse être qualifié de mineur, je pense qu'il fonctionnerait aussi bien, sinon mieux, en tant que montage.
Scott Weldon

J'ai joué un peu avec ça et je l'aime bien même si cela semble souffrir lorsque le débit de données est élevé.
stsquad

0

J'ai lu que si vous définissez le verrouillage global des polices sur zéro, vous devriez également voir des améliorations de vitesse

(global-font-lock-mode -1)

et peut-être

(setq jit-lock-defer-time 0.05)

améliorera les vitesses de défilement

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.