การบันทึกและตรวจสอบในการพัฒนามือถือ: สาระสำคัญ เครื่องมืออะไร และวิธีการตั้งค่า

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-05-27 เวลาอ่าน: 8 นาที

การบันทึกและตรวจสอบเป็นสองเสาหลักของความเสถียรของแอปพลิเคชันมือถือ ตามข้อมูลของ Gartner (2025) ตลาดโซลูชัน APM จะถึง 8 พันล้านดอลลาร์ภายในปี 2027 การบันทึกที่ถูกต้อง ไม่เพียงช่วยค้นหาข้อบกพร่อง แต่ยังช่วยทำนายปัญหาก่อนที่จะส่งผลกระทบต่อผู้ใช้

ประเด็นสำคัญ

  • บน iOS เครื่องมือหลักคือ os_log (การบันทึกระบบในตัว) และ CocoaLumberjack (ไลบรารีที่ยืดหยุ่นพร้อมการหมุนเวียนและการจัดรูปแบบ) การตรวจสอบบน iOS ช่วยควบคุมประสิทธิภาพแบบเรียลไทม์
  • บน Android มาตรฐานคือ Timber (ตัวหุ้มเหนือ Logcat) และ Log ของระบบ Timber แทรกแท็กคลาสโดยอัตโนมัติและจัดการระดับการบันทึก
  • การบันทึกแบบมีโครงสร้าง — การเขียนบันทึกในรูปแบบ JSON ช่วยวิเคราะห์บันทึกโดยอัตโนมัติผ่าน ELK, Grafana หรือ Datadog แนะนำสำหรับการผลิตและการตรวจสอบอัตโนมัติ
  • APM (Application Performance Monitoring) — เครื่องมือประเภทหนึ่งสำหรับ การตรวจสอบแอปพลิเคชันมือถือ: New Relic, Datadog, Firebase Performance
  • การหมุนเวียนบันทึกและการบันทึกระยะไกลจำเป็นสำหรับการผลิต บันทึกไม่ควรเติมหน่วยความจำของอุปกรณ์และต้องสามารถเข้าถึงได้โดยนักพัฒนาจากระยะไกล

การบันทึกและตรวจสอบบน iOS: os_log และ CocoaLumberjack

การบันทึกแอปพลิเคชันมือถือ บน iOS สร้างขึ้นบน os_log — ระบบในตัวของ Apple ที่พร้อมใช้งานตั้งแต่ iOS 10 os_log เขียนบันทึกลงในบันทึกระบบเดียว (บนอุปกรณ์หรือผ่าน Console.app) รองรับหมวดหมู่ ระดับ และแท็กความเป็นส่วนตัว การรวมกันของการบันทึกและตรวจสอบบน iOS ผ่าน Console.app และ xcrun ช่วยติดตามข้อผิดพลาดและประสิทธิภาพแบบเรียลไทม์

Log Level บน iOS

os_log มีระดับ: Default, Info, Debug, Error, Fault ในการผลิตจะเก็บ Error และ Fault — Debug และ Info จะถูกปิดใช้งาน การเลือกระดับที่ถูกต้องเป็นส่วนหนึ่งของกลยุทธ์ การตรวจสอบแอปพลิเคชันมือถือ บน iOS ความเป็นส่วนตัว: %{public}@ สำหรับข้อมูลที่ไม่มีการป้องกัน %{private}@ สำหรับข้อมูลส่วนบุคคล

CocoaLumberjack

CocoaLumberjack เป็นไลบรารียอดนิยมสำหรับการบันทึกบน iOS ต่างจาก os_log ตรงที่รองรับรูปแบบที่กำหนดเอง การเขียนแบบอะซิงโครนัส และการหมุนเวียนบันทึก DDLog, DDTTYLogger (คอนโซล), DDFileLogger (ไฟล์ที่มีการหมุนเวียน) สำหรับการตรวจสอบระยะไกล สามารถรวม CocoaLumberjack กับ os_log — เขียนลงไฟล์สำหรับการบันทึกระยะไกลและเขียนลง os_log สำหรับ Console.app

การบันทึกและตรวจสอบบน Android: Timber และ Log Level

สำหรับ การบันทึกแอปพลิเคชันมือถือ บน Android ใช้ Timber — ไลบรารีโดย Jake Wharton ที่กลายเป็นมาตรฐานของแพลตฟอร์ม Timber เป็นตัวหุ้มเหนือ Android Log (Logcat) ที่เพิ่มแท็กคลาสโดยอัตโนมัติและกำหนดค่า Tree Timber เป็นส่วนหนึ่งของระบบตรวจสอบแอปพลิเคชันมือถือ Android: DebugTree สำหรับการดีบัก, CrashlyticsTree สำหรับการส่งข้อมูล

Timber โดยละเอียด

Timber ใช้ Tree — คอมโพเนนต์ที่ตัดสินใจว่าจะทำอย่างไรกับบันทึก ในบิลด์ดีบัก ใช้ DebugTree (ส่งออกไปยัง Logcat) ในรุ่นรีลีส — CrashlyticsTree (ส่งความขัดข้อง) Timber.wtf() บันทึกข้อผิดพลาดร้ายแรง Timber.tag("CustomTag") กำหนดแท็กใหม่ เพื่อการตรวจสอบที่มีประสิทธิภาพ Timber จะถูกรวมกับเครื่องมือ APM

Log Level บน Android

Android Log มีระดับ: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT ProGuard/R8 ลบ Log.d และ Log.v ในรุ่นรีลีส — Timber อนุญาตให้บันทึกผ่าน Plant การเลือกระดับส่งผลต่อคุณภาพของการตรวจสอบแอปพลิเคชันมือถือ — ในการผลิตจะเก็บ WARN และ ERROR

เครื่องมือ แพลตฟอร์ม รูปแบบ การหมุนเวียน ระยะไกล ความซับซ้อน
os_logiOSมีโครงสร้างระบบConsole.appต่ำ
CocoaLumberjackiOSข้อความ/JSONDDFileLoggerใช่ (กำหนดเอง)ปานกลาง
TimberAndroidข้อความLogcat/กำหนดเองTreeต่ำ
SentryiOS/AndroidJSONเซิร์ฟเวอร์ใช่ปานกลาง
LogcatAndroidข้อความบัฟเฟอร์ADBต่ำ

เมื่อเลือกเครื่องมือบันทึก ให้พิจารณา: คุณต้องการบันทึกระยะไกลหรือไม่ บันทึกเปลี่ยนแปลงบ่อยแค่ไหน และใครจะเป็นผู้วิเคราะห์ สำหรับสตาร์ทอัพ os_log หรือ Timber ก็เพียงพอ สำหรับองค์กร — CocoaLumberjack พร้อมส่งไปยังเซิร์ฟเวอร์ ที่ IT Sectr เราใช้ชุด Timber + Crashlytics สำหรับ Android และ os_log + CocoaLumberjack สำหรับ iOS

การบันทึกแบบมีโครงสร้าง

การบันทึกแบบมีโครงสร้าง — การเขียนบันทึกในรูปแบบ JSON แทนข้อความธรรมดา ตัวอย่าง: แทนที่จะเขียน "User login failed" เราเขียน {"event": "login_failed", "user_id": 123, "reason": "invalid_password"} นี่คือพื้นฐานสำหรับ การตรวจสอบ อัตโนมัติ — สแต็ก ELK และ Grafana กรอง รวบรวม และวิเคราะห์ข้อมูลดังกล่าว

ข้อดีของการบันทึกแบบมีโครงสร้าง

การกรอง ตามฟิลด์: ค้นหาบันทึกทั้งหมดที่มี event=crash ในชั่วโมงที่ผ่านมา การรวบรวม: สร้างกราฟจำนวนข้อผิดพลาดตามเวอร์ชันแอปพลิเคชัน การรวมกับ ELK (Elasticsearch, Logstash, Kibana) หรือ Grafana การบันทึกแบบมีโครงสร้างไม่จำเป็นสำหรับรุ่นแรกๆ แต่จะสำคัญเมื่อ DAU เกิน 10,000

การบันทึกระยะไกลและการหมุนเวียนบันทึก

การบันทึกระยะไกล — การส่งบันทึกจากอุปกรณ์ไปยังเซิร์ฟเวอร์เพื่อการตรวจสอบแบบรวมศูนย์ ดำเนินการผ่าน Tree ที่กำหนดเอง (Android) หรือคำขอ HTTP ส่งเฉพาะ Error และ Warning — อย่าสิ้นเปลืองปริมาณการใช้งานของผู้ใช้ การหมุนเวียนบันทึก: DDFileLogger (iOS) ทุก 1 MB หรือ 1 วัน บน Android บัฟเฟอร์ Logcat มีจำกัด

APM และการตรวจสอบแอปพลิเคชันมือถือ: Sentry, New Relic, Datadog

Application Performance Monitoring (APM) — เครื่องมือประเภทหนึ่งสำหรับ การตรวจสอบแอปพลิเคชันมือถือ APM วัด: เวลาเริ่มต้น คำขอเครือข่าย FPS การใช้หน่วยความจำ ความถี่ของความขัดข้อง ผู้เล่นหลัก: Sentry (Performance), New Relic Mobile, Datadog Mobile

Sentry Performance

Sentry — ไม่เพียงแต่การรายงานความขัดข้อง แต่ยังรวมถึงการตรวจสอบประสิทธิภาพ Sentry Performance สร้างรอยกระจายที่แสดงว่าแต่ละขั้นตอนใช้เวลานานเท่าใด: จากการกดปุ่มจนถึงการตอบสนองของเซิร์ฟเวอร์ รองรับ iOS, Android, Flutter, React Native ฟรีสูงสุด 5k เหตุการณ์ต่อเดือน

New Relic และ Datadog

New Relic Mobile ให้เมตริก: จำนวนเซสชัน เวลาในแอป ความถี่ของความขัดข้อง คำขอเครือข่าย Datadog Mobile เป็นเครื่องมือที่ทันสมัยกว่าพร้อมแดชบอร์ดแบบเรียลไทม์และการแจ้งเตือน ทั้งสองแบบเสียเงิน แต่มีระดับฟรี IT Sectr แนะนำให้เริ่มต้นด้วย Firebase Performance และเปลี่ยนไปใช้ APM แบบเสียเงินเมื่อ DAU เกิน 100,000

Firebase Performance

Firebase Performance — เครื่องมือ ตรวจสอบแอปพลิเคชันมือถือ ฟรีจาก Google รวบรวมเมตริกโดยอัตโนมัติ: เวลาเริ่มต้นแอปพลิเคชัน คำขอ HTTP (URL, วิธีการ, รหัสตอบสนอง), FPS สำหรับการติดตามที่กำหนดเอง ให้ใช้ Trace API การรวม: เพิ่ม SDK ใน build.gradle (Android) หรือ Podfile (iOS)

Trace และเมตริก

Trace — ส่วนของเวลาที่มีจุดเริ่มต้นและจุดสิ้นสุดที่คุณวัด ตัวอย่าง: trace = FirebasePerformance.getInstance().newTrace("checkout_process") เมตริก — ตัวบ่งชี้เชิงตัวเลข (ขนาดการตอบสนอง จำนวนรายการ) Firebase Performance ไม่ต้องการโครงสร้างพื้นฐานเซิร์ฟเวอร์ — ข้อมูลทั้งหมดผ่าน Firebase SDK เมื่อตรวจสอบแอปพลิเคชันมือถือ Trace API ให้บริบทสำหรับการวิเคราะห์ประสิทธิภาพ

คำถามที่พบบ่อย

มีระดับการบันทึกใดบ้างและควรใช้เมื่อใด

ระดับมาตรฐาน: ERROR (ข้อผิดพลาดร้ายแรง), WARN (ปัญหาที่อาจเกิดขึ้น), INFO (เหตุการณ์สำคัญ), DEBUG (การดีบัก), VERBOSE (การติดตามโดยละเอียด) ในการผลิตจะเก็บ ERROR, WARN และ INFO ส่วนที่เหลือจะถูกปิดใช้งาน

Timber แตกต่างจาก Logcat ใน Android อย่างไร

Timber เป็นไลบรารีตัวหุ้มเหนือ Logcat โดย Jake Wharton สำหรับการบันทึกแอปพลิเคชันมือถือบน Android มันแทรกแท็กคลาสโดยอัตโนมัติ กำหนดค่า Tree และปิดการบันทึกในการผลิตด้วยโค้ดหนึ่งบรรทัด

APM คืออะไรและทำไมแอปมือถือถึงต้องการ

APM (Application Performance Monitoring) — เครื่องมือประเภทหนึ่งสำหรับติดตามประสิทธิภาพ: เวลาเริ่มต้น คำขอเครือข่าย การใช้หน่วยความจำ ความถี่ของความขัดข้อง เมื่อตรวจสอบแอปพลิเคชันมือถือ New Relic, Datadog และ Firebase Performance ช่วยค้นหาคอขวดก่อนที่ผู้ใช้จะร้องเรียน

สตาร์ทอัพควรใช้โซลูชัน APM แบบเสียเงินหรือไม่

สำหรับสตาร์ทอัพ Firebase Performance ก็เพียงพอ — เครื่องมือตรวจสอบแอปพลิเคชันมือถือฟรี New Relic และ Datadog จะเชื่อมต่อเมื่อต้องการการติดตามโดยละเอียดและแดชบอร์ดที่กำหนดเอง IT Sectr แนะนำให้เริ่มต้นด้วย Firebase และเปลี่ยนไปใช้โซลูชันแบบเสียเงินเมื่อ DAU เกิน 100,000

การบันทึกแบบมีโครงสร้างคืออะไรและดีกว่าข้อความธรรมดาอย่างไร

การบันทึกแบบมีโครงสร้าง เป็นรูปแบบบันทึกใน JSON หรือคีย์-ค่าแทนข้อความธรรมดา ช่วยให้กรองบันทึกตามฟิลด์ สร้างแผนภูมิ และวิเคราะห์โดยอัตโนมัติใน ELK หรือ Grafana หากไม่มีบันทึกที่มีโครงสร้าง การหารูปแบบในบันทึกหลายพันรายการเป็นเรื่องยาก

สรุป

  • os_log — เครื่องมือพื้นฐานสำหรับการบันทึกและตรวจสอบบน iOS CocoaLumberjack เพิ่มความยืดหยุ่น การหมุนเวียน และการบันทึกระยะไกล
  • Timber — มาตรฐานการบันทึกแอปพลิเคชันมือถือบน Android DebugTree สำหรับการดีบัก CrashlyticsTree สำหรับรุ่นรีลีส
  • การบันทึกแบบมีโครงสร้าง (JSON) จำเป็นสำหรับการวิเคราะห์บันทึกอัตโนมัติ รวมกับ ELK, Grafana, Datadog
  • APM — Sentry Performance, New Relic, Datadog Firebase Performance — เครื่องมือตรวจสอบแอปพลิเคชันมือถือฟรีสำหรับสตาร์ทอัพ
  • การหมุนเวียนบันทึกป้องกันหน่วยความจำอุปกรณ์ล้น กำหนดค่า DDFileLogger (iOS) หรือใช้บัฟเฟอร์ Logcat (Android)
  • การบันทึกระยะไกล — ส่งเฉพาะบันทึก Error และ Warning บันทึกทั้งหมดสิ้นเปลืองปริมาณการใช้งานของผู้ใช้
  • Trace API และ breadcrumbs (Sentry) ให้บริบทสำหรับการตรวจสอบแอปพลิเคชันมือถือ เปลี่ยนบันทึกเป็นเรื่องราวของเหตุการณ์

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ