CocoAalumberjack est un cadre de journalisation rapide et simple, mais puissant et flexible pour MacOS, iOS, TVOS, WatchOS et VisionOS.
Tout d'abord, installez CocoAalumberjack via Cocoapods, Carthage, Swift Package Manager ou manuellement. Utilisez ensuite DDOSLogger pour iOS 10 et ultérieurement, ou DDTTYLogger et DDASLLogger pour les versions antérieures pour commencer les messages de journalisation.
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end Remarque: Swift est une sous-espèce qui inclura tout le code OBJ-C plus le Swift One, donc cela suffit. Pour plus de détails sur la façon d'utiliser Swift avec Lumberjack, consultez cette conversation.
Pour Objective-C, utilisez ce qui suit:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endCarthage est un gestionnaire de dépendance léger pour Swift et Objective-C. Il exploite les modules de cocoatouch et est moins invasif que les cocoapodes.
Pour installer avec Carthage, suivez les instructions sur Carthage
Cartouche
github "CocoaLumberjack/CocoaLumberjack"
À partir de CocoAalumberjack 3.6.0, vous pouvez utiliser le Swift Package Manager comme méthode d'intégration. Si vous souhaitez utiliser le Swift Package Manager comme méthode d'intégration, utilisez XCode pour ajouter la dépendance du package ou ajouter la dépendance suivante à votre package.swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , Notez que vous devrez peut-être ajouter les deux produits, CocoaLumberjack et CocoaLumberjackSwift à votre cible, car SPM ne parvient pas à détecter que CocoaLumberjackSwift dépend de CocoaLumberjack .
Si vous souhaitez installer CocoAalumberjack manuellement, lisez le guide d'installation manuel pour plus d'informations.
Habituellement, vous pouvez simplement import CocoaLumberjackSwift . Si vous avez installé CocoAalumberjack à l'aide de cocoapods, vous devez utiliser import CocoaLumberjack à la place.
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 " ) Si vous utilisez Lumberjack comme cadre, vous pouvez @import CocoaLumberjack; . Sinon, #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 " ); Lors de l'intégration de Lumberjack dans un objectif-C existant, il est possible de conclure Multiple methods named 'tag' found with mismatched result, parameter type or attributes .
Ajoutez #define DD_LEGACY_MESSAGE_TAG 0 avant d'importer cocoalumberjack ou ajouter #define DD_LEGACY_MESSAGE_TAG 0 ou add -DDD_LEGACY_MESSAGE_TAG=0 à d'autres drapeaux C / autres_cflags dans votre projet xcode.
CocoAalumberjack est également expédié avec une implémentation backend pour Swift-log. Ajoutez simplement COCOALUMBERJACK en tant que dépendance à votre cible SPM (voir ci-dessus) et ajoutez également le produit CocoaLumberjackSwiftLogBackend comme dépendance à votre cible.
Vous pouvez ensuite utiliser DDLogHandler comme backend pour Swift-Log, qui transmettra tous les messages à DDLog de CocoAalumberjack. Vous configurerez toujours les journalistes et les formateurs de journal que vous souhaitez via DDLog , mais l'écriture de messages de journal sera effectuée à l'aide de Logger depuis Swift-log.
Dans vos propres formateurs de journal, vous pouvez utiliser la propriété swiftLogInfo sur DDLogMessage pour récupérer les détails d'un message enregistré via Swift-log.
Pour utiliser Swift-log avec CocoAalumberjack, jetez un œil à l'extrait de code suivant pour voir comment commencer.
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 backendIl est similaire dans le concept à d'autres frameworks de journalisation populaires tels que LOG4J, mais est conçu spécifiquement pour Objective-C, et tire parti de fonctionnalités telles que le multi-threading, la grande répartition centrale (si disponible), les opérations atomiques sans verrouillage et la nature dynamique de l'objectif-C objectif-C.
Dans la plupart des cas, c'est un ordre de grandeur plus rapide que NSLOG.
Il faut aussi peu qu'une seule ligne de code pour configurer Lumberjack lorsque votre application sera lancée. Ensuite, remplacez simplement vos instructions NSLOG par des instructions DDLOG et c'est à peu près tout. (Et les macros DDLOG ont exactement le même format et la même syntaxe que NSLOG, donc c'est super facile.)
Une instruction de journal peut être envoyée à plusieurs journalistes, ce qui signifie que vous pouvez vous connecter simultanément à un fichier et à la console. En voulez plus? Créez vos propres enregistreurs (c'est facile) et envoyez vos instructions de journal sur le réseau. Ou dans une base de données ou un système de fichiers distribué. Le ciel est la limite.
Configurez votre journalisation comme vous le souhaitez. Modifier les niveaux de journal par fichier (parfait pour le débogage). Modifier les niveaux de journal par enregistreur (console Verbose, mais fichier journal concis). Modifier les niveaux de journal par configuration Xcode (débogage verbeux, mais version concise). Demandez à vos instructions de journal de compiller à partir de la version de version. Personnalisez le nombre de niveaux de journal pour votre application. Ajoutez votre propre journalisation à grain fin. Modifier dynamiquement les niveaux de journal pendant l'exécution. Choisissez comment et quand vous souhaitez que vos fichiers journaux soient roulés. Téléchargez vos fichiers journaux sur un serveur central. Compression des fichiers journaux archivés pour économiser l'espace disque ...
La version actuelle de Lumberjack nécessite:
Selon les détails de la confidentialité de l'application sur l'App Store, Apple demande aux développeurs d'applications de fournir des informations sur leur collection de données, les maintenseurs du SDK américain doivent leur fournir les mêmes données.
Par défaut, CocoAalumberjack ne collecte aucune donnée en soi.
Voir notre liste de pratiques de collecte de données.
CocoAalumberjack est un cadre de journalisation qui facilite l'envoi de ces journaux à différentes plates-formes.
C'est pourquoi la collecte de données peut se produire assez facilement, si les développeurs d'applications incluent des données sensibles dans leurs messages de journal.
Remarque importante: les développeurs d'applications sont entièrement responsables des données sensibles collectées via notre système de journalisation!
En conséquence, vous devez vous conformer à la stratégie des détails de la confidentialité d'Apple (mentionné ci-dessus) et documenter les façons dont les données utilisateur sont collectées. Étant donné que le nombre de scénarios où les données peuvent être indirectement collectées via CocoAalumberjack est assez grande, c'est à vous, en tant que développeurs d'applications, pour examiner correctement le code de votre application et identifier ces cas. Ce que nous pouvons faire pour aider, c'est sensibiliser à la collecte potentielle des données grâce à notre cadre.
Les données privées incluent mais ne sont pas limitées:
Exemple : DDLogInfo("User: (myUser)") ajoutera les informations myUser aux journaux, donc si ceux-ci sont transmis à un tiers ou envoyés par e-mail, qui peuvent être qualifiés de collecte de données.