ถ้าต้องใช้ แย่
/สตเดอร์
คุณสามารถใช้ sd-ภูต
คำนำหน้าการบันทึก.
เติมของคุณ สตเดอร์
กับ <3>
เพื่อส่ง ข้อผิดพลาด
ลำดับความสำคัญ วารสาร
บันทึก.
ใช้ของคุณ log-test.sh
และ บันทึกการทดสอบบริการ
:
#!/bin/bash
>&2 echo "<3>นี่คือข้อผิดพลาด"
echo "นี่คือข้อมูล"
ทางออก 0
และ วารสาร ctl
เอาต์พุต:
$ Journalctl -u บันทึกการทดสอบ -p 3
02 พฤษภาคม 01:22:58 host.example.com log-test.sh[29909]: นี่คือข้อผิดพลาด
ถ้าคุณ แอพแฟนซี
มี API ใด ๆ ที่จะเขียนถึง syslog
คุณสามารถใช้สิ่งนั้นเพื่อเขียนไปยัง UNIX datagram /dev/log
(โดยปกติจะเขียนได้โดยค่าเริ่มต้น และบันทึกไปที่ วารสาร
) แทน แย่
/สตเดอร์
. ใช้แท็ก syslog เพื่อระบุของคุณ แอพแฟนซี
, syslog ลำดับความสำคัญเป็น ข้อผิดพลาด
หรือ ข้อมูล
ขึ้นอยู่กับความต้องการของคุณและสิ่งอำนวยความสะดวก syslog
ตัวอย่างเช่นใน Bash เราสามารถใช้ คนตัดไม้
:
# ส่งข้อความ INFO ไปที่ Journalctl
$ คนตัดไม้ -t แอพแฟนซี -u /dev/log -p user.info "นี่คือข้อมูล"
# ส่งข้อความผิดพลาดไปที่ Journalctl
$ คนตัดไม้ -t แอพแฟนซี -u /dev/log -p user.error "นี่คือข้อผิดพลาด"
# แสดงข้อความเจอร์นัลสำหรับแอพแฟนซี
$journalctl -t แอพแฟนซี
02 พฤษภาคม 01:23:38 host.example.com fancy-app[27302]: นี่คือข้อมูล
02 พฤษภาคม 01:23:39 host.example.com fancy-app[27303]: นี่คือข้อผิดพลาด
# แสดงข้อความ ERROR ของ Journald สำหรับแอปแฟนซี
$journalsctl -t แอพแฟนซี -p 3
02 พฤษภาคม 01:23:39 host.example.com fancy-app[27303]: นี่คือข้อผิดพลาด
โปรดทราบว่าใน distros ส่วนใหญ่ วารสาร
รายการมักจะส่งต่อไปยัง syslog daemon โลคัล (syslog-ng
, rsyslog
, ...) ดังนั้นอาจตรวจสอบตัวกรอง syslog ของคุณ หรืออาจใช้ ท้องถิ่น0
...ท้องถิ่น7
สิ่งอำนวยความสะดวก.
เรามีแอปที่ใช้งานจริงจำนวนมาก (บุคคลที่หนึ่งและบุคคลที่สาม) ที่ปล่อยให้การเข้าสู่ระบบไปยังคอนเทนเนอร์และเพียงแค่เข้าสู่ stdout สำหรับ INFO และ stderr สำหรับบันทึกข้อผิดพลาด (เช่น ลำดับความสำคัญของการบันทึกเพียง 2 รายการ: INFO|ERROR)
เอ็นจิ้นคอนเทนเนอร์ส่วนใหญ่ควรสามารถเข้าสู่ syslog ได้ ฉันจะใช้ Docker เป็นตัวอย่างโดยไม่รู้ว่าคอนเทนเนอร์เอนจิ้นของคุณ
นักเทียบท่ามี ไดรเวอร์การบันทึก syslog ที่สามารถใช้เพื่อส่งข้อความบันทึกโดยใช้รูปแบบ syslog ไปยังเป้าหมาย syslog ใดๆ คุณควรจะเข้าสู่ระบบได้ วารสาร
ด้วยสิ่งที่ชอบ:
นักเทียบท่ารัน \
--log-driver syslog \
--log-opt syslog-address=unix:///dev/log \
--log-opt syslog-facility=user \
--log-opt tag=fancy-app \
แอพแฟนซี: ล่าสุด
นักเทียบท่าก็มี โปรแกรมควบคุมการบันทึก Journald มีอยู่. ตัวอย่างเช่น:
นักเทียบท่ารัน \
--log-driver Journald \
--log-opt tag=fancy-app \
แอพแฟนซี: ล่าสุด
ทั้งไดรเวอร์การบันทึก (syslog และ วารสาร) รองรับการแยกระหว่าง แย่
และ สตเดอร์
; เช่น. แย่
ข้อความจะถูกบันทึกด้วย ข้อมูล
ลำดับความสำคัญและ สตเดอร์
ข้อความจะถูกบันทึกด้วย ข้อผิดพลาด
ลำดับความสำคัญ.
นอกเหนือจากปรัชญาและสงครามแห่งเปลวเพลิงแล้ว ทำไมไม่เข้าสู่ syslog จริงล่ะ ง่ายกว่า จัดเก็บในรูปแบบข้อความ และโดยทั่วไปรองรับโดยซอฟต์แวร์การจัดการบันทึก (ดู เกรย์ล็อก, ล็อกสแตช, ทางกระดาษ).