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 -это подпрокс, который будет включать весь код OBJ-C плюс Swift One, так что этого достаточно. Для получения более подробной информации о том, как использовать Swift с лесорузом, посмотрите этот разговор.
Для Objective-C Используйте следующее:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endКарфаген является легким менеджером зависимостей для Swift и Objective-C. Он использует модули кокоатуч и менее инвазивна, чем кокопод.
Чтобы установить с Карфагеном, следуйте инструкциям на Карфагене
Cartfile
github "CocoaLumberjack/CocoaLumberjack"
По состоянию на Cocoalumberjack 3.6.0 вы можете использовать диспетчер пакетов Swift в качестве метода интеграции. Если вы хотите использовать диспетчер пакетов Swift в качестве метода интеграции, либо используйте XCode, чтобы добавить зависимость пакета или добавить следующую зависимость в свой пакет. Swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , Обратите внимание, что вам, возможно, придется добавить как продукты, CocoaLumberjack и CocoaLumberjackSwift к вашей цели, поскольку SPM иногда не может обнаружить, что CocoaLumberjackSwift зависит от CocoaLumberjack .
Если вы хотите установить Cocoalumberjack вручную, прочитайте Руководство по установке ручной работы для получения дополнительной информации.
Обычно вы можете просто import CocoaLumberjackSwift . Если вы установили Cocoalumberjack с помощью кокопод, вам нужно использовать 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 " ) Если вы используете лесорубец в качестве рамки, вы можете @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 " ); При интеграции лесорубец в существующую Objective-C можно столкнуться с Multiple methods named 'tag' found with mismatched result, parameter type or attributes .
Добавить #define DD_LEGACY_MESSAGE_TAG 0 Перед импортом кокосовой кишки или добавить #define DD_LEGACY_MESSAGE_TAG 0 или добавить -DDD_LEGACY_MESSAGE_TAG=0 к другим c -флагам / другим_Кфлагам в вашем проекте xcode.
Cocoalumberjack также поставляется с бэкэнд-реализацией для Swift-Log. Просто добавьте Cocoalumberjack в качестве зависимости к вашей цели SPM (см. Выше), а также добавьте продукт CocoaLumberjackSwiftLogBackend в качестве зависимости от вашей цели.
Затем вы можете использовать DDLogHandler в качестве бэкэнда для Swift-Log, который будет направлять все сообщения в DDLog Cocoalumberjack. Вы по-прежнему настраиваете желаемые регистраторы и формируемые журналы через DDLog , но написание сообщений журнала будет выполнено с использованием Logger от Swift-Log.
В ваших собственных формах журнала вы можете использовать свойство swiftLogInfo на DDLogMessage , чтобы получить детали сообщения, которое регистрируется через Swift-Log.
Чтобы использовать 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, и использует преимущества таких функций, как многопоточное, Grand Central Dispatch (если доступно), без блокировки атомных операций и динамический характер выполнения Objective-C.
В большинстве случаев это на порядок быстрее, чем nslog.
При запуске вашего приложения требуется всего лишь единственная строка кода для настройки дровосека. Затем просто замените свои операторы NSLOG на операторы DDLOG, и это все. (И макросы DDLOG имеют точно такой же формат и синтаксис, что и NSLOG, так что это очень легко.)
Один оператор журнала может быть отправлена нескольким регистраторам, что означает, что вы можете войти в файл и консоль одновременно. Хотите большего? Создайте свои собственные регистраторы (это легко) и отправьте свои операторы журнала по сети. Или в базу данных или распределенной файловой системе. Небо - предел.
Настройте свой журнал, как хотите. Изменить уровни журнала на файл (идеально подходит для отладки). Измените уровни журнала на логист (словесная консоль, но лаконичный файл журнала). Изменить уровни журнала на конфигурацию Xcode (отладка словеса, но краткий релиз). Соберите ваши операторы журнала из сборки релиза. Настройте количество уровней журнала для вашего приложения. Добавьте свой собственный мелкозернистый журнал. Динамически изменить уровни журнала во время выполнения. Выберите, как и когда вы хотите, чтобы ваши файлы журнала были выполнены. Загрузите файлы журнала на центральный сервер. Сжатие архивных файлов журнала для сохранения дискового пространства ...
Текущая версия дровосека требует:
В соответствии с приложениями для получения информации о конфиденциальности в App Store Apple просит разработчиков приложений предоставить информацию о своем сборе данных, а также предоставители SDK США должны предоставить им те же данные.
По умолчанию, Cocoalumberjack не собирает никаких данных самостоятельно.
Смотрите наш список методов сбора данных.
Cocoalumberjack - это платформа регистрации, которая позволяет легко отправлять эти журналы на разные платформы.
Вот почему сбор данных может произойти довольно легко, если разработчики приложений включают какие -либо конфиденциальные данные в свои сообщения журнала.
Важное примечание: разработчики приложений несут полную ответственность за любые конфиденциальные данные, собранные через нашу систему журнала!
Вследствие этого вы должны соблюдать политику сведений Apple в области конфиденциальности (упомянутая выше) и документировать способы собираются пользовательские данные. Поскольку количество сценариев, в которых данные могут быть косвенно собраны через Cocoalumberjack, довольно большое, вам, как разработчики приложений, решать вам, чтобы правильно просмотреть код вашего приложения и определить эти случаи. Что мы можем сделать, чтобы помочь повысить осведомленность о потенциальном сборе данных через нашу структуру.
Частные данные включают, но не ограничены:
Пример : DDLogInfo("User: (myUser)") добавит информацию myUser в журналы, поэтому, если они перенаправлены для сторонней стороны или отправлены по электронной почте, которая может квалифицироваться как сбор данных.