क्या बड़ी लॉग फ़ाइलों के लिए एक सभ्य लॉग देखने का तरीका है?


11

मैं जिन लॉग फ़ाइलों के साथ काम कर रहा हूँ उनमें से कुछ काफी बड़ी हैं (> 200Mb) लेकिन Emacs में उन्हें ब्राउज़ करना अच्छा होगा। इस समय डिफ़ॉल्ट रूप से Emacs log4j मोड को सक्षम करने का प्रयास करता है जो बस सब कुछ धीमा कर देता है। मुझे वास्तव में एक हल्के दर्शक की आवश्यकता है:

  • अक्षम पूर्ववत मोड
  • लॉग फ़ाइल अद्यतन होने पर स्वतः वापस कर सकते हैं
  • अपडेट होने पर लॉग की पूंछ का पालन कर सकते हैं

आदर्श रूप में यह लॉग फ़ाइल के एक छोटे से हिस्से में मैप करने के लिए अच्छा होगा जैसा कि आप ब्राउज़ करते हैं। क्या ऐसे कोई लॉग मोड मौजूद हैं?


3
Emacs का जवाब नहीं, लेकिन मैंने पाया है कि एक साधारण पूंछ के साथ tmux का उपयोग करने से -f ने मुझे सबसे अच्छा समाधान दिया है, tmux के उपयोग से आप लॉग को रोक सकते हैं और बाइंडिंग जैसे emacs का उपयोग करके इसके चारों ओर खोज कर सकते हैं। मेरी लॉग फाइलें आमतौर पर 2gb से ऊपर हैं और यह अच्छी तरह से चलती है। वैकल्पिक रूप से Mx शेल + टेल -f + फॉन्ट लॉक एक अच्छा समाधान है।
जॉर्डन बियोन्डो

1
वास्तव में आप जो पूछ रहे हैं वह ठीक नहीं है, लेकिन शायद M-x fundamental-modeगति के मामले में लॉग 4 जे-मोड पर सुधार होगा।
लेगोशिया

@legoscia: हाँ, मैं पहले से ही मैन्युअल रूप से पाठ-मोड पर स्विच कर रहा हूं जो मदद करता है।
stsquad

मैं आमतौर पर इस मामले में क्या करता हूं: @JordonBiondo ने जो सुझाव दिया है, उसके समान, इसके अलावा, मैं एक पेजर का उपयोग कर रहा हूं tail, यानी cat file.log | less। यह सभी पेजर कमांड का उपयोग करने में सक्षम है, जैसे कि एक समय में लाइनों की संख्या को खोजना और प्रदर्शित करना।
wvxvw

इसके अलावा, यह: github.com/mbriggs/emacs-pager मैंने पाया कि मैंने इसे बुकमार्क कर लिया है, लेकिन उपयोग नहीं किया ...
wvxvw

जवाबों:


7

यही है वह जो मेरे द्वारा उपयोग किया जाता है। यह सब कुछ निष्क्रिय कर देता है जो धीमा हो सकता है, बफर को केवल पढ़ता है, और ऑटो-रिवर्ट-टेल-मोड सेट करता है:

;; 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 या उपयोग करें। आपको जो भी अन्य मानदंड पसंद हैं।


2

मैं कुछ वर्षों से सफलता के साथ https://github.com/re5et/itail का उपयोग कर रहा हूं ।

यह एक टेल मोड है जो अपने आप में खुलता है।


इसके अतिरिक्त मैंने ESHELL को अपनी आवश्यकताओं के लिए पर्याप्त रूप से अनुकूलित किया है ताकि लेनिंगन और अन्य सीएलआई बिल्ड टूल को अच्छी तरह से चलाया जा सके ताकि मैं अपने विकास बिल्ड आउटपुट को एक बफर में आसानी से देख सकूं।
16

टिप्पणी करने के बजाय , अतिरिक्त जानकारी को शामिल करने के लिए कृपया अपनी स्वयं की पोस्ट संपादित करें। (ऐसा करने के बाद, आप अपनी टिप्पणी हटा सकते हैं।)
स्कॉट वेल्डन

@ScottWeldon ने सोचा कि अतिरिक्त जानकारी एक टिप्पणी के रूप में अधिक उपयुक्त थी
शिकारी

टिप्पणियाँ स्पष्टीकरण, रचनात्मक आलोचना और छोटी या क्षणिक जानकारी के लिए हैं। हालांकि, यह नाबालिग के रूप में अर्हता प्राप्त कर सकता है, मुझे लगता है कि यह एक संपादन के रूप में, यदि बेहतर नहीं है, तो बस काम करेगा।
स्कॉट वेल्डन

मैंने इसे थोड़ा सा खेला है और मुझे यह काफी पसंद है, हालांकि यह तब लगता है जब डेटा रेट अधिक होता है।
stsquad

0

मैंने पढ़ा है कि यदि आप वैश्विक फ़ॉन्ट लॉकिंग को शून्य पर सेट करते हैं तो आपको गति में सुधार भी देखना चाहिए

(global-font-lock-mode -1)

और शायद

(setq jit-lock-defer-time 0.05)

स्क्रॉलिंग गति में सुधार होगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.