ฉันกำลังปรับแต่งบันทึกของแอพและ postgres
tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log
ฉันต้องรวมบันทึกของ pgpool ด้วย มันเคยเป็น syslog แต่ตอนนี้มันอยู่ใน journalctl
มีวิธีผูกหาง -f && journalctl -f ด้วยกันไหม?
ฉันกำลังปรับแต่งบันทึกของแอพและ postgres
tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log
ฉันต้องรวมบันทึกของ pgpool ด้วย มันเคยเป็น syslog แต่ตอนนี้มันอยู่ใน journalctl
มีวิธีผูกหาง -f && journalctl -f ด้วยกันไหม?
คำตอบ:
คุณสามารถใช้:
journalctl -u service-name -f
-f, - ติดตาม
แสดงเฉพาะรายการบันทึกประจำวันล่าสุดและพิมพ์รายการใหม่อย่างต่อเนื่องเมื่อมีการต่อท้ายวารสาร
ที่นี่ฉันได้เพิ่ม "service-name" เพื่อแยกความแตกต่างคำตอบนี้จากคนอื่น ๆ ; service-name
คุณแทนชื่อบริการที่เกิดขึ้นจริงแทนของข้อความ
คุณสามารถส่งต่อรายการบันทึกของคุณไปยังวารสาร :
systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log
และจากนั้นใช้journalctl -f
... ถึงแม้ว่าจะทำเครื่องหมายตามที่กล่าวไว้ว่าจะพิมพ์รายการบันทึกประจำวันทั้งหมด
วิธีหนึ่งในการกรองเฉพาะข้อความจากบันทึกเหล่านั้นและจากหน่วยเฉพาะนั้นคือการใช้ความแตกต่างSYSLOG_IDENTIFIER
เช่นแก้ไขไฟล์หน่วยและภายใต้[Service]
ส่วนเพิ่มเช่น
SyslogIdentifier=my_stuff
รีสตาร์ทหน่วยจากนั้นเรียกใช้systemd-cat
ด้วยตัวระบุเดียวกัน
systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log
และในที่สุดก็สืบค้นวารสารเฉพาะตัวระบุนั้นเท่านั้น:
journalctl -f -t my_stuff
หากคุณมีทุบตีพร้อมใช้งานคุณสามารถใช้การทดแทนกระบวนการเป็นหนึ่งในtail
พารามิเตอร์:
tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)
pgpool.service
journalctl -fu pgpool.service
นอกจากนี้หากคุณไม่ได้เรียกใช้สิ่งนี้ในฐานะรูทตรวจสอบให้แน่ใจว่าผู้ใช้อยู่ในsystemd-journal
กลุ่ม
ลองสิ่งที่ชอบ:
tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log