تسجيل (Logging) لـ Swift (iOS/macOS): نظرة عامة على أفضل الحلول
التسجيل (Logging) هو أحد المكونات الأساسية لتطوير تطبيقات عالية الجودة لنظامي iOS وmacOS. فهو يساعد في تتبع الأخطاء، وتحليل سلوك المستخدمين، وتصحيح السيناريوهات المعقدة. في نظام Swift البيئي، توجد عدة أدوات موثوقة، لكل منها نقاط قوته. في هذه المقالة، سنستعرض ثلاثة من أفضل الحلول: SwiftyBeaver، CocoaLumberjack، و OSLog (الحل المدمج من Apple).
لماذا لا يمكن الاعتماد فقط على print()؟
يستخدم العديد من المطورين المبتدئين print() لإخراج معلومات التصحيح. ومع ذلك، فإن لهذا النهج عيوبًا كبيرة:
- عدم وجود مستويات للتسجيل (debug، info، error).
- عدم القدرة على تصفية الرسائل بمرونة.
- الإخراج إلى وحدة التحكم يبطئ أداء التطبيق في بيئة الإنتاج (production).
- لا يوجد دعم مدمج لجمع السجلات عن بُعد.
الأدوات الاحترافية تحل هذه المشكلات وتمنح المطور تحكمًا كاملاً في العملية.
1. SwiftyBeaver — تسجيل مرن وجميل
SwiftyBeaver هي واحدة من أشهر المكتبات لـ Swift. توفر واجهة برمجة تطبيقات (API) مريحة، ودعمًا للإخراج الملون في وحدة التحكم، وإمكانية إرسال السجلات إلى الخدمات السحابية (مثل لوحة المعلومات السحابية الخاصة بها أو الأنظمة الخارجية).
التثبيت
أضف التبعية في ملف Package.swift أو استخدم CocoaPods:
// Swift Package Managerdependencies: [ .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "2.0.0")]مثال على الاستخدام
import SwiftyBeaver
let log = SwiftyBeaver.self
// إعداد الإخراج إلى وحدة التحكم (مع الألوان)let console = ConsoleDestination()console.format = "$DHH:mm:ss$d $L $M"log.addDestination(console)
// التسجيلlog.verbose("هذه رسالة مفصلة (verbose)")log.debug("تصحيح")log.info("معلومات")log.warning("تحذير")log.error("خطأ")ميزات SwiftyBeaver
- دعم 5 مستويات للتسجيل (verbose، debug، info، warning، error).
- إخراج ملون في وحدة تحكم Xcode (مفيد جدًا أثناء التصحيح).
- إمكانية إرسال السجلات إلى التخزين السحابي (SwiftyBeaver Cloud).
- التصفية حسب المستوى والعلامات (tags).
- تأثير ضئيل على الأداء.
2. CocoaLumberjack — المعيار الصناعي
CocoaLumberjack هو إطار عمل قوي يُستخدم في مشاريع كبيرة مثل Slack وTwitter وغيرها الكثير. إنه يركز على الأداء العالي ومرونة التكوين.
التثبيت
// CocoaPodspod 'CocoaLumberjack/Swift'مثال على الاستخدام
import CocoaLumberjack
// الإعدادDDLog.add(DDOSLogger.sharedInstance) // الإخراج إلى وحدة التحكم
// التسجيلDDLogDebug("رسالة تصحيح")DDLogInfo("معلومات")DDLogWarn("تحذير")DDLogError("خطأ")مزايا CocoaLumberjack
- أداء فائق (كتابة غير متزامنة).
- دعم "وجهات" متعددة (console، file، database).
- نظام تنسيق سجلات مرن.
- إمكانية إنشاء مسجلات (loggers) مخصصة.
- تكامل ممتاز مع مشاريع Objective-C.
3. OSLog — الحل الأصلي من Apple
بدءًا من iOS 10 وmacOS 10.12، قدمت Apple OSLog — نظام تسجيل مدمج يعمل على مستوى النواة. إنه مثالي لإصدارات الإنتاج (production builds) ولا يتطلب تثبيت مكتبات خارجية.
مثال على الاستخدام
import OSLog
let logger = Logger(subsystem: "com.myapp", category: "network")
logger.debug("تم إنشاء الاتصال")