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 แต่ละระดับให้รายละเอียดที่แตกต่างกันสำหรับการแก้ไขปัญหา