ไฟล์บันทึกเป็นส่วนสำคัญของแอปพลิเคชันที่ร้ายแรงใด ๆ : หากการบันทึกในแอพนั้นดีใด ๆ พวกเขาจะให้คุณเห็นเหตุการณ์สำคัญที่เกิดขึ้นและเมื่อใด; เกิดข้อผิดพลาดอะไรขึ้น และสุขภาพทั่วไปของแอปพลิเคชันที่เหนือกว่าการตรวจสอบใด ๆ ที่ได้รับการออกแบบมาเป็นเรื่องปกติที่จะได้ยินปัญหาตรวจสอบการวินิจฉัยในตัวของแอปพลิเคชัน (ปรากฏขึ้นเปิดเว็บคอนโซลหรือใช้เครื่องมือวินิจฉัยเช่น JMX) ล็อกไฟล์
หากคุณใช้รูปแบบที่ไม่ใช่ข้อความคุณจะต้องเผชิญกับสิ่งกีดขวางทันที: คุณจะอ่านบันทึกไบนารีได้อย่างไร ด้วยเครื่องมืออ่านบันทึกซึ่งไม่ได้อยู่ในเซิร์ฟเวอร์การผลิตของคุณ! หรือมันเป็น แต่ที่รักเราได้เพิ่มเขตข้อมูลใหม่และนี่คือผู้อ่านเก่า เราไม่ได้ทดสอบสิ่งนี้ใช่ไหม ใช่ แต่ไม่มีใครปรับใช้ที่นี่ ในขณะเดียวกันหน้าจอของคุณเริ่มสว่างขึ้นกับผู้ใช้ที่ส่งเสียงคุณ
หรือบางทีนี่อาจไม่ใช่แอปของคุณ แต่คุณสนับสนุนและคิดว่าคุณรู้ว่านี่เป็นระบบอื่นและ WTF หรือไม่ บันทึกอยู่ในรูปแบบไบนารีหรือไม่ ตกลงเริ่มอ่านหน้า wiki และคุณเริ่มต้นที่ไหน ตอนนี้ฉันได้คัดลอกมันไปยังเครื่องท้องถิ่นของฉันแล้ว แต่ - พวกมันเสียหายหรือไม่ ฉันได้ทำการถ่ายโอนที่ไม่ใช่ไบนารีแล้วหรือยัง? หรือเครื่องมืออ่านบันทึกทำผิดพลาดหรือไม่
กล่าวโดยย่อเครื่องมืออ่านข้อความเป็นแบบข้ามแพลตฟอร์มและแพร่หลายและบันทึกมักมีอายุการใช้งานยาวนานและบางครั้งจำเป็นต้องอ่านอย่างรวดเร็ว หากคุณคิดค้นรูปแบบไบนารี่คุณก็จะถูกตัดขาดจากโลกที่เต็มไปด้วยเครื่องมือที่เข้าใจและใช้งานง่าย การสูญเสียการทำงานอย่างจริงจังเมื่อคุณต้องการ
สภาพแวดล้อมการบันทึกส่วนใหญ่มีการประนีประนอม: ทำให้บันทึกปัจจุบันสามารถอ่านได้และนำเสนอและบีบอัดบันทึกที่เก่ากว่า นั่นหมายความว่าคุณได้รับประโยชน์จากการบีบอัด - ยิ่งกว่านั้นจริงๆแล้วเนื่องจากรูปแบบไบนารีจะไม่ลดขนาดข้อความบันทึก ในเวลาเดียวกันคุณสามารถใช้งานน้อยลงและgrepและอื่น ๆ
ดังนั้นสิ่งที่เป็นไปได้ผลประโยชน์ที่อาจเกิดขึ้นจากการใช้ไบนารี? ประสิทธิภาพพื้นที่เพียงเล็กน้อย - ไม่สำคัญมากขึ้น เขียนน้อยลง (หรือเล็กกว่า)? ที่จริงแล้วจำนวนของการเขียนจะเกี่ยวข้องกับจำนวนของดิสก์ที่คอมมิตดังนั้นหากเส้นบันทึกมีขนาดเล็กกว่าดิสก์บล็อคขนาดใหญ่อย่างมีนัยสำคัญ SSD จะกำหนดบล็อกใหม่ซ้ำแล้วซ้ำอีก ดังนั้นไบนารีเป็นตัวเลือกที่เหมาะสมหาก:
- คุณกำลังเขียนข้อมูลที่มีโครงสร้างจำนวนมาก
- ต้องสร้างบันทึกอย่างรวดเร็วเป็นพิเศษ
- คุณไม่จำเป็นต้องวิเคราะห์พวกเขาภายใต้ "เงื่อนไขการสนับสนุน"
แต่นี่จะฟังดูน้อยลงเช่นการบันทึกแอปพลิเคชัน นี่คือไฟล์เอาต์พุตหรือบันทึกกิจกรรม การวางไว้ในไฟล์อาจเป็นเพียงขั้นตอนเดียวจากการเขียนลงในฐานข้อมูล
แก้ไข
ฉันคิดว่ามีความสับสนทั่วไปที่นี่ระหว่าง "บันทึกโปรแกรม" (ตามกรอบการบันทึก) เทียบกับ "บันทึก" (เช่นในบันทึกการเข้าถึงบันทึกการเข้าสู่ระบบและอื่น ๆ ) ฉันสงสัยว่าคำถามนั้นเกี่ยวข้องอย่างใกล้ชิดที่สุดกับเรื่องหลังและในกรณีนี้ปัญหาก็มีความชัดเจนน้อยกว่ามาก เป็นที่ยอมรับอย่างสมบูรณ์สำหรับบันทึกข้อความหรือบันทึกกิจกรรมในรูปแบบกะทัดรัดโดยเฉพาะอย่างยิ่งเนื่องจากมีแนวโน้มที่จะได้รับการกำหนดและใช้ในการวิเคราะห์มากกว่าการแก้ไขปัญหา เครื่องมือที่ทำนี้รวมและระบบตรวจสอบระบบปฏิบัติการยูนิกซ์tcpdump
sar
โปรแกรมบันทึกในทางกลับกันมักจะมีมากขึ้นเฉพาะกิจ