Cocoalumberjack هو إطار تسجيل سريع وبسيط ، ولكنه قوي ومرن لـ MacOS و iOS و TVOs و Watchos و VisionOs.
أولاً ، قم بتثبيت Cocoalumberjack عبر Cocoapods أو Carthage أو Swift Package Manager أو يدويًا. ثم استخدم DDOSLogger لـ iOS 10 وبعد ذلك ، أو DDTTYLogger و DDASLLogger للإصدارات السابقة للبدء في تسجيل الرسائل.
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end ملاحظة: Swift عبارة عن subspec والتي ستشمل جميع كود OBJ-C بالإضافة إلى Swift ، لذلك هذا يكفي. لمزيد من التفاصيل حول كيفية استخدام Swift مع Lumberjack ، راجع هذه المحادثة.
للهدف C استخدام ما يلي:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endCarthage هو مدير التبعية خفيفة الوزن لـ Swift و Diseive-C. إنه يعزز وحدات Cocoatouch وهو أقل غزوًا من Cocoapods.
للتثبيت مع قرطاج ، اتبع التعليمات على قرطاج
Cartfile
github "CocoaLumberjack/CocoaLumberjack"
اعتبارًا من Cocoalumberjack 3.6.0 ، يمكنك استخدام Swift Package Manager كأسلوب تكامل. إذا كنت ترغب في استخدام Swift Package Manager كأسلوب تكامل ، فاستخدم XCode لإضافة تبعية الحزمة أو إضافة التبعية التالية إلى الحزمة الخاصة بك.
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , لاحظ أنك قد تحتاج إلى إضافة كلا المنتجين ، CocoaLumberjack و CocoaLumberjackSwift إلى هدفك لأن SPM فشل في بعض الأحيان في اكتشاف أن CocoaLumberjackSwift يعتمد على CocoaLumberjack .
إذا كنت ترغب في تثبيت Cocoalumberjack يدويًا ، فاقرأ دليل التثبيت اليدوي لمزيد من المعلومات.
عادة ، يمكنك ببساطة import CocoaLumberjackSwift . إذا قمت بتثبيت Cocoalumberjack باستخدام Cocoapods ، فأنت بحاجة إلى استخدام import CocoaLumberjack بدلاً من ذلك.
DDLog . add ( DDOSLogger . sharedInstance ) // Uses os_log
let fileLogger : DDFileLogger = DDFileLogger ( ) // File Logger
fileLogger . rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger . logFileManager . maximumNumberOfLogFiles = 7
DDLog . add ( fileLogger )
...
DDLogVerbose ( " Verbose " )
DDLogDebug ( " Debug " )
DDLogInfo ( " Info " )
DDLogWarn ( " Warn " )
DDLogError ( " Error " ) إذا كنت تستخدم Lumberjack كإطار عمل ، فيمكنك @import CocoaLumberjack; . خلاف ذلك ، #import <CocoaLumberjack/CocoaLumberjack.h>
[DDLog addLogger: [DDOSLogger sharedInstance ]]; // Uses os_log
DDFileLogger *fileLogger = [[DDFileLogger alloc ] init ]; // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 ; // 24 hour rolling
fileLogger.logFileManager.maximumNumberOfLogFiles = 7 ;
[DDLog addLogger: fileLogger];
...
DDLogVerbose ( @" Verbose " );
DDLogDebug ( @" Debug " );
DDLogInfo ( @" Info " );
DDLogWarn ( @" Warn " );
DDLogError ( @" Error " ); عند دمج LumberJack في هدف موجود ، من الممكن تشغيل Multiple methods named 'tag' found with mismatched result, parameter type or attributes بناء.
أضف #define DD_LEGACY_MESSAGE_TAG 0 قبل استيراد cocoalumberjack أو أضف #define DD_LEGACY_MESSAGE_TAG 0 أو إضافة -DDD_LEGACY_MESSAGE_TAG=0 إلى علامات c أخرى / other_cflags في مشروع xcode الخاص بك.
يشحن Cocoalumberjack أيضًا مع تنفيذ الواجهة الخلفية لـ Swift-Log. ما عليك سوى إضافة CocoalumberJack كاعتماد على هدف SPM الخاص بك (انظر أعلاه) وأيضًا إضافة منتج CocoaLumberjackSwiftLogBackend باعتباره التبعية على هدفك.
يمكنك بعد ذلك استخدام DDLogHandler كواجهة خلفية لـ Swift-log ، والتي ستقوم بإعادة توجيه جميع الرسائل إلى DDLog من Cocoalumberjack. لا يزال بإمكانك تكوين عمليات تسجيل الدخول وتنسيقات السجل التي تريدها عبر DDLog ، ولكن سيتم كتابة رسائل السجل باستخدام Logger من Swift-Log.
في تنسيقات السجل الخاصة بك ، يمكنك الاستفادة من خاصية swiftLogInfo على DDLogMessage لاسترداد تفاصيل الرسالة التي يتم تسجيلها عبر سطوع سريع.
لاستخدام Swift-Log مع Cocoalumberjack ، ألقِ نظرة على مقتطف الكود التالي لمعرفة كيفية البدء.
import CocoaLumberjack
import CocoaLumberjackSwiftLogBackend
import Logging
// In your application's entry point (e.g. AppDelegate):
DDLog . add ( DDOSLogger . sharedInstance ) // Configure loggers
LoggingSystem . bootstrapWithCocoaLumberjack ( ) // Use CocoaLumberjack as swift-log backendإنه مشابه من المفهوم مع أطر التسجيل الشائعة الأخرى مثل Log4J ، ومع ذلك تم تصميمه خصيصًا لـ Objective-C ، ويستفيد من ميزات مثل Multi-Thresident و Grand Central Dispatch (إن وجدت) ، والعمليات الذرية غير القفل ، والطبيعة الديناميكية لوقت تشغيل Comply-C.
في معظم الحالات ، يكون ترتيبًا أسرع من NSLog.
يستغرق الأمر أقل من سطر واحد من التعليمات البرمجية لتكوين Lumberjack عند تشغيل التطبيق الخاص بك. ثم ببساطة استبدال عبارات NSLog الخاصة بك مع عبارات DDLOG وهذا يتعلق بها. (ووحدات الماكرو DDLOG لها نفس التنسيق الدقيق وبناء الجملة مثل nslog ، لذلك فهو سهل للغاية.)
يمكن إرسال بيان سجل واحد إلى العديد من عمليات تسجيل الدخول ، مما يعني أنه يمكنك تسجيل الدخول إلى ملف ووحدة التحكم في وقت واحد. تريد المزيد؟ قم بإنشاء تسجيلات تسجيلات خاصة بك (من السهل) إرسال عبارات السجل الخاصة بك عبر الشبكة. أو إلى قاعدة بيانات أو نظام ملفات موزعة. السماء هي الحد.
قم بتكوين التسجيل الخاص بك كما تريد. تغيير مستويات السجل لكل ملف (مثالي لتصحيح الأخطاء). قم بتغيير مستويات السجل لكل مسجل (وحدة تحكم مطوّلة ، ولكن ملف السجل الموجز). تغيير مستويات السجل لكل تكوين Xcode (Debose Debug ، ولكن إصدار موجز). اطلب من عبارات السجل الخاصة بك تجميعها من بناء الإصدار. تخصيص عدد مستويات السجل لتطبيقك. أضف قطع الأشجار الخاصة بك. تغيير مستويات السجل ديناميكيًا أثناء وقت التشغيل. اختر كيف ومتى تريد أن يتم لف ملفات السجل الخاصة بك. قم بتحميل ملفات السجل الخاصة بك إلى خادم مركزي. ملفات السجل المؤرشفة لحفظ مساحة القرص ...
يتطلب الإصدار الحالي من Lumberjack:
لكل تطبيق تفاصيل خصوصية التطبيق على متجر التطبيقات ، تطلب Apple مطورو التطبيقات تقديم معلومات حول جمع البيانات الخاصة بهم ، ويجب أن يزودهم شركة SDK SDK بنفس البيانات.
بشكل افتراضي ، لا يقوم Cocoalumberjack بجمع أي بيانات من تلقاء نفسها.
انظر قائمة ممارسات جمع البيانات لدينا.
Cocoalumberjack هو إطار تسجيل يجعل من السهل إرسال هذه السجلات إلى منصات مختلفة.
هذا هو السبب في أن جمع البيانات قد يحدث بسهولة تامة ، إذا كان مطورو التطبيقات يتضمنون أي بيانات حساسة في رسائل السجل الخاصة بهم.
ملاحظة مهمة: مطورو التطبيقات مسؤولون تمامًا عن أي بيانات حساسة تم جمعها من خلال نظام التسجيل الخاص بنا!
نتيجة لذلك ، يجب أن تمتثل لسياسة تفاصيل خصوصية Apple (المذكورة أعلاه) وتوثيق الطرق التي يتم بها جمع بيانات المستخدم. نظرًا لأن عدد السيناريوهات التي يمكن جمعها بشكل غير مباشر من خلال CocoalumberJack كبيرًا جدًا ، فإن الأمر متروك لك ، كمطوري التطبيقات ، لمراجعة رمز التطبيق الخاص بك بشكل صحيح وتحديد هذه الحالات. ما يمكننا القيام به للمساعدة هو زيادة الوعي حول جمع البيانات المحتملة من خلال إطار عملنا.
تتضمن البيانات الخاصة ولكنها لا تقتصر على:
مثال : ستضيف DDLogInfo("User: (myUser)") معلومات myUser إلى السجلات ، لذلك إذا تم إعادة توجيهها إلى طرف ثالث أو يتم إرسالها عبر البريد الإلكتروني ، فقد يكون ذلك مؤهلاً لجمع البيانات.