มีโหมดการรับชมที่เหมาะสมสำหรับไฟล์บันทึกขนาดใหญ่หรือไม่?


11

ไฟล์บันทึกบางไฟล์ที่ฉันใช้งานมีขนาดใหญ่พอสมควร (> 200Mb) แต่มันก็ดีถ้าดูใน Emacs ในตอนนี้โดยค่าเริ่มต้น Emacs จะพยายามเปิดใช้งานโหมด log4j ซึ่งจะทำให้ทุกอย่างช้าลง สิ่งที่ฉันต้องการจริงๆคือเครื่องมือดูที่มีน้ำหนักเบาซึ่ง:

  • ปิดการใช้งานโหมดเลิกทำ
  • สามารถเปลี่ยนกลับอัตโนมัติเมื่อมีการอัปเดตไฟล์บันทึก
  • สามารถติดตามหางของบันทึกเมื่อมีการปรับปรุง

เป็นการดีที่จะทำแผนที่ในส่วนเล็ก ๆ ของล็อกไฟล์เมื่อคุณเปิดดู มีโหมดบันทึกใด ๆ อยู่หรือไม่


3
ไม่ใช่คำตอบของ emacs แต่ฉันพบว่าการใช้ tmux กับ tail-f แบบง่ายได้ให้วิธีที่ดีที่สุดแก่ฉันการใช้ tmux จะช่วยให้คุณหยุดการบันทึกและค้นหารอบ ๆ โดยใช้ emacs เช่นการผูก ล็อกไฟล์ของฉันมักจะสูงกว่า 2gb และทำงานได้ดี อีกทางเลือกหนึ่ง Mx shell + tail -f + ไม่มีการล็อคแบบอักษรเป็นทางออกที่ดี
Jordon Biondo

1
ไม่ใช่สิ่งที่คุณต้องการ แต่อาจM-x fundamental-modeเป็นการปรับปรุงในโหมด log4j ในแง่ของความเร็ว
legoscia

@legoscia: ใช่ฉันได้เปลี่ยนมาใช้โหมดข้อความด้วยตนเองแล้วซึ่งช่วยได้
stsquad

สิ่งที่ฉันมักจะทำในกรณีนี้คล้ายกับสิ่งที่ @JordonBiondo ปัญหายกเว้นฉันใช้เพจเจอร์แทนคือtail cat file.log | lessสิ่งนี้มีประโยชน์ในการใช้คำสั่งเพจเจอร์ทั้งหมดเช่นการค้นหาและการแสดงจำนวนบรรทัดในแต่ละครั้ง
wvxvw

นอกจากนี้: github.com/mbriggs/emacs-pagerฉันพบว่าฉันบุ๊คมาร์คไว้ แต่ไม่ได้ใช้ ...
wvxvw

คำตอบ:


7

นี่คือสิ่งที่ฉันใช้ มันปิดการใช้งานทุกอย่างที่อาจทำให้ emacs ทำงานช้าลงทำให้บัฟเฟอร์อ่านได้อย่างเดียวและตั้งค่าโหมด auto-revert-tail-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)

หากคุณไม่ต้องการให้ emacs ทำงานในลักษณะนี้สำหรับบัฟเฟอร์โหมดเปลี่ยนกลับอัตโนมัติทั้งหมดคุณสามารถเพิ่มการตรวจสอบเพื่อให้แน่ใจว่าไฟล์ลงท้ายด้วย. log ที่ด้านบนสุดของ etc-log-tail-handler หรือใช้ เกณฑ์อื่น ๆ ที่คุณชอบ


2

ฉันใช้https://github.com/re5et/itailด้วยความสำเร็จมาสองปีแล้ว

มันเป็นโหมดหางที่เปิดในบัฟเฟอร์ของตัวเอง


นอกจากนี้ฉันได้ปรับ ESHELL ให้เพียงพอกับความต้องการของฉันเพื่อให้สามารถใช้งาน Leiningen และเครื่องมือสร้าง CLI อื่น ๆ ได้ดีพอสมควรเพื่อให้ฉันสามารถดูผลลัพธ์การสร้างการพัฒนาได้อย่างง่ายดายในบัฟเฟอร์
Huntar

แทนที่จะแสดงความคิดเห็นโปรดแก้ไขโพสต์ของคุณเองเพื่อรวมข้อมูลเพิ่มเติม (หลังจากที่คุณทำเช่นนั้นคุณอาจลบความคิดเห็นของคุณ)
Scott Weldon

@ScottWeldon ผมคิดว่าข้อมูลเพิ่มเติมได้ที่เหมาะสมมากขึ้นเป็นความคิดเห็น
ฮันตาร์

ความคิดเห็นสำหรับการชี้แจงวิจารณ์ที่สร้างสรรค์และข้อมูลเล็กน้อยหรือชั่วคราว ในขณะที่มันอาจมีคุณสมบัติเป็นผู้เยาว์ แต่ฉันคิดว่ามันจะทำงานได้ดีหากไม่ดีขึ้นเช่นเดียวกับการแก้ไข
Scott Weldon

ฉันเคยเล่นกับมันมาบ้างแล้วและฉันก็ชอบมันมากแม้ว่ามันจะดูลำบากเมื่ออัตราข้อมูลสูง
stsquad

0

ฉันได้อ่านแล้วว่าถ้าคุณตั้งค่าการล็อคฟอนต์โกลบอลเป็นศูนย์คุณควรเห็นการปรับปรุงความเร็ว

(global-font-lock-mode -1)

และอาจจะ

(setq jit-lock-defer-time 0.05)

จะปรับปรุงความเร็วในการเลื่อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.