ใน C เราบันทึกด้วยวิธีนี้:
syslog( LOG_INFO, "proxying %s", url );
ใน Linux เราจะตรวจสอบบันทึกได้อย่างไร?
ใน C เราบันทึกด้วยวิธีนี้:
syslog( LOG_INFO, "proxying %s", url );
ใน Linux เราจะตรวจสอบบันทึกได้อย่างไร?
คำตอบ:
แล้วไงless /var/log/syslog?
/etc/syslog.conf
tail -f /var/log/syslogเป็นสิ่งที่ดีมากเพราะมันแสดงผลลัพธ์ล่าสุดเมื่อเข้าสู่ syslog จะมีประโยชน์หากคุณกำลังพยายามแก้ไขปัญหาบางอย่างอยู่แทนที่จะมองไปที่สิ่งที่ผ่านมาอย่างเคร่งครัด
บน Fedora 19 /var/log/messagesดูเหมือนว่าคำตอบคือ แม้ว่าตรวจสอบ/etc/rsyslog.confว่ามีการเปลี่ยนแปลงหรือไม่
โดยค่าเริ่มต้นจะเข้าสู่ระบบเข้าสู่ระบบที่/var/log/syslogดังนั้นจึงสามารถอ่านได้โดย:
tail -f /var/log/syslog
หากไม่มีไฟล์ให้ตรวจสอบ/etc/syslog.confเพื่อดูไฟล์คอนฟิกูเรชันสำหรับ syslogd โปรดทราบว่าไฟล์คอนฟิกูเรชันอาจแตกต่างกันดังนั้นให้ตรวจสอบกระบวนการทำงานว่าใช้ไฟล์อื่น
# ps wuax | grep syslog
root /sbin/syslogd -f /etc/syslog-knoppix.conf
หมายเหตุ: ในบางกระจาย (เช่น Knoppix) ทั้งหมดเข้าสู่ระบบข้อความจะถูกส่งไปเข้ากับขั้วที่แตกต่างกัน (เช่น/dev/tty12) ดังนั้นในการเข้าถึงเช่นtty12ลองกดControl+ +AltF12
คุณยังสามารถใช้lsofเครื่องมือเพื่อค้นหาไฟล์บันทึกที่syslogdกระบวนการใช้เช่น
sudo lsof -p $(pgrep syslog) | grep log$
ในการส่งข้อความทดสอบไปยัง syslogd ในเชลล์คุณอาจลอง:
echo test | logger
สำหรับการแก้ไขปัญหาให้ใช้เครื่องมือติดตาม ( straceบน Linux dtrussบน Unix) เช่น:
sudo strace -fp $(cat /var/run/syslogd.pid)
เด็ดมาก util journalctlคือ
ตัวอย่างเช่นการแสดง syslog ไปยังคอนโซล: journalctl -t <syslog-ident>ที่<syslog-ident>เป็นตัวตนของคุณให้กับฟังก์ชั่นopenlogเพื่อการเริ่มต้น syslog
syslog-ngกับบริการ systemd คุณสามารถดู syslog ด้วยjournalctl --unit=syslog-ng@default.service
tail -f /var/log/syslog | grep process_nameprocess_nameชื่อของกระบวนการที่เราสนใจอยู่
ที่ไหน
หากคุณชอบ Vim มันมีการเน้นไวยากรณ์ในตัวสำหรับไฟล์ syslog เช่นจะเน้นข้อความแสดงข้อผิดพลาดเป็นสีแดง
vi +'syntax on' /var/log/syslog
บนเราเตอร์ Asus สามารถทำได้ผ่านไฟล์
:/bin# busybox
นอกจากนี้ยังมีคำสั่งอื่น ๆ ที่เกี่ยวข้องกับ
syslogเขียนลงในบันทึกระบบหรือไม่? (เว้นแต่คุณจะพูดถึงระดับล่างสำหรับการเข้าถึงบัฟเฟอร์วงแหวนข้อความเคอร์เนล แต่ฉันสงสัยว่าurlเป็นint)