Swift:
การบันทึกล็อก

วิธีทำ:

ใน Swift คุณสามารถเขียนบันทึกไปยังคอนโซลด้วยคำสั่ง print หรือ API os.log ที่มีความยืดหยุ่นมากขึ้น ซึ่งเชื่อมต่อกับ Unified Logging System บนแพลตฟอร์ม Apple

import os.log

let logger = OSLog(subsystem: "com.yourapp.domain", category: "network")

func fetchData() {
    // คำสั่ง print แบบง่ายๆ
    print("Fetch started")
    
    // บันทึกระดับข้อมูลโดยใช้ os.log
    os_log(.info, log: logger, "Fetching data from API.")
    
    do {
        let data = try performNetworkRequest()
        // บันทึกระดับการดีบัก
        os_log(.debug, log: logger, "Data received: %@", data.description)
    } catch {
        // บันทึกระดับข้อผิดพลาด
        os_log(.error, log: logger, "Failed to fetch data: %@", error.localizedDescription)
    }
}

func performNetworkRequest() throws -> Data {
    // จำลองการร้องขอเชื่อมต่อเครือข่าย
    return Data()
}

การแสดงผลตัวอย่างบนคอนโซลอาจดูเช่นนี้:

Fetch started
Fetching data from API.
Data received: Some data bytes...

สำหรับข้อผิดพลาด อาจเป็น:

Failed to fetch data: The Internet connection appears to be offline.

ลงลึก

การบันทึกใน Swift ได้รับพลังและประสิทธิภาพใหม่ด้วย Unified Logging System ที่เปิดตัวใน iOS 10 และ macOS Sierra ไม่เหมือนกับคำสั่ง print ที่ไปที่คอนโซลโดยตรง ระบบนี้เป็นกิจกรรมตามฐานะ และช่วยให้คุณกรองข้อความบันทึกตามความสำคัญและไม่ว่าพวกเขาเป็นการดีบักหรือสร้างเวอร์ชันปล่อย

บริบทประวัติศาสตร์สร้างกรอบการวิวัฒนาการของการบันทึกใน iOS และ macOS จากคำสั่ง print พื้นฐานสู่เครื่องมืออันครบถ้วนที่ทำงานร่วมกับแอพ Instruments และ Console ให้วิธีที่ซับซ้อนในการวิเคราะห์บันทึก

มีตัวเลือกอื่นๆ สำหรับการบันทึกภายใน Swift เช่น ไลบรารีของบุคคลที่สามอย่าง CocoaLumberjack ซึ่งเสนอชั้นข้อมูลมาโครเหนือ Unified Logging System มันให้การควบคุมที่เพิ่มขึ้นเกี่ยวกับการจัดรูปแบบบันทึก การจัดการไฟล์ และตัวเลือกประสิทธิภาพ

สุดท้าย รายละเอียดการนำไปใช้; OSLog ถูกออกแบบไม่เพียงแต่เพื่อประสิทธิภาพ แต่ยังสามารถรักษาข้อมูลส่วนตัวให้ปลอดภัยเมื่อบันทึก มันจัดประเภทบันทึกเป็นระดับ fault, error, info และ debug แต่ละระดับให้รายละเอียดที่แตกต่างกันสำหรับการแก้ไขปัญหา

ดูเพิ่มเติม