Cocoalumberjack es un marco de registro rápido y potente y poderoso y flexible para macOS, iOS, tvos, watchos y visos.
Primero, instale Cocoalumberjack a través de Cocoapods, Cartago, Swift Package Manager o manualmente. Luego use DDOSLogger para iOS 10 y más tarde, o DDTTYLogger y DDASLLogger para versiones anteriores para comenzar a registrar mensajes.
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end Nota: Swift es un subespec que incluirá todo el código OBJ-C más el Swift, por lo que esto es suficiente. Para obtener más detalles sobre cómo usar Swift con Lumberjack, vea esta conversación.
Para Objective-C use lo siguiente:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endCartago es un gerente de dependencia liviano para Swift y Objective-C. Aprovecha los módulos de CocoAtouch y es menos invasivo que los cocoapods.
Para instalar con Cartago, siga las instrucciones en Cartago
Cartel
github "CocoaLumberjack/CocoaLumberjack"
A partir de Cocoalumberjack 3.6.0, puede usar el Swift Package Manager como método de integración. Si desea utilizar el Swift Package Manager como método de integración, use Xcode para agregar la dependencia del paquete o agregar la siguiente dependencia a su paquete.swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , Tenga en cuenta que es posible que necesite agregar ambos productos, CocoaLumberjack y CocoaLumberjackSwift a su objetivo, ya que SPM a veces no puede detectar que CocoaLumberjackSwift depende de CocoaLumberjack .
Si desea instalar Cocoalumberjack manualmente, lea la guía de instalación manual para obtener más información.
Por lo general, simplemente puede import CocoaLumberjackSwift . Si instaló CocoAlumberjack con Cocoapods, debe usar import CocoaLumberjack en su lugar.
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 está utilizando Lumberjack como marco, puede @import CocoaLumberjack; . De lo contrario, #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 " ); Al integrar LumberJack en un Objective-C existente, es posible encontrarse con Multiple methods named 'tag' found with mismatched result, parameter type or attributes .
Agregue #define DD_LEGACY_MESSAGE_TAG 0 antes de importar CocoAlumberjack o agregar #define DD_LEGACY_MESSAGE_TAG 0 o agregar -DDD_LEGACY_MESSAGE_TAG=0 a otros Fands / Other_CFlags en su proyecto Xcode.
Cocoalumberjack también se envía con una implementación de backend para Swift-Log. Simplemente agregue Cocoalumberjack como dependencia a su objetivo SPM (ver arriba) y también agregue el producto CocoaLumberjackSwiftLogBackend como dependencia de su objetivo.
Luego puede usar DDLogHandler como Backend para Swift-Log, que reenviará todos los mensajes al DDLog de Cocoalumberjack. Todavía configurará los registradores y los formatúas de registro que desea a través de DDLog , pero la escritura de mensajes de registro se realizará utilizando Logger desde Swift-Log.
En sus propios formatters de registro, puede hacer uso de la propiedad swiftLogInfo en DDLogMessage para recuperar los detalles de un mensaje que se registra a través de Swift-Log.
Para usar Swift-Log con Cocoalumberjack, eche un vistazo al siguiente fragmento de código para ver cómo comenzar.
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 backendEs similar en concepto a otros marcos de registro populares como LOG4J, pero está diseñado específicamente para Objective-C, y aprovecha características como Multi-Threading, Grand Central Dispatch (si está disponible), Operaciones Atómicas sin Lockless y la naturaleza dinámica del tiempo de ejecución Objective-C.
En la mayoría de los casos, es un orden de magnitud más rápido que NSLOG.
Se necesitan tan poco como una sola línea de código para configurar LumberJack cuando se inicia su aplicación. Luego, simplemente reemplace sus declaraciones de NSLOG con las declaraciones DDLOG y eso es todo. (Y las macros DDLog tienen exactamente el mismo formato y sintaxis que NSLOG, por lo que es muy fácil).
Una instrucción de registro se puede enviar a múltiples registros, lo que significa que puede iniciar sesión en un archivo y la consola simultáneamente. ¿Quieres más? Cree sus propios registros (es fácil) y envíe sus declaraciones de registro a través de la red. O a una base de datos o sistema de archivos distribuido. El cielo es el límite.
Configure su registro como desee. Cambie los niveles de registro por archivo (perfecto para la depuración). Cambie los niveles de registro por registrador (consola detallada, pero el archivo de registro conciso). Cambie los niveles de registro por configuración de Xcode (depuración detallada, pero la versión concisa). Haga que sus declaraciones de registro compilen fuera de la compilación de la versión. Personalice el número de niveles de registro para su aplicación. Agregue su propio registro de grano fino. Cambiar dinámicamente los niveles de registro durante el tiempo de ejecución. Elija cómo y cuándo desea que sus archivos de registro sean rodados. Cargue sus archivos de registro a un servidor central. Comprimir archivos de registro archivados para guardar espacio en disco ...
La versión actual de LumberJack requiere:
Según los detalles de privacidad de la aplicación en la App Store, Apple solicita a los desarrolladores de aplicaciones que proporcionen información sobre su recopilación de datos, los mantenedores de SDK de EE. UU. Deben proporcionarles los mismos datos.
Por defecto, CocoalumberJack no recopila ningún dato por sí solo.
Consulte nuestra lista de prácticas de recopilación de datos.
Cocoalumberjack es un marco de registro que facilita enviar esos registros a diferentes plataformas.
Es por eso que la recopilación de datos puede ocurrir con bastante facilidad, si los desarrolladores de aplicaciones incluyen datos confidenciales en sus mensajes de registro.
Nota importante: ¡Los desarrolladores de aplicaciones son totalmente responsables de cualquier datos confidenciales recopilados a través de nuestro sistema de registro!
En consecuencia, debe cumplir con la Política de detalles de privacidad de Apple (mencionada anteriormente) y documentar las formas en que se recopilan los datos del usuario. Dado que el número de escenarios en los que los datos pueden recopilarse indirectamente a través de Cocoalumberjack es bastante grande, depende de usted, como desarrolladores de aplicaciones, revisar adecuadamente el código de su aplicación e identificar esos casos. Lo que podemos hacer para ayudar es crear conciencia sobre la recopilación de datos potenciales a través de nuestro marco.
Los datos privados incluyen pero no se limitan a:
Ejemplo : DDLogInfo("User: (myUser)") agregará la información myUser a los registros, por lo que si se envían a un tercero o se envían por correo electrónico, que puede calificar como recopilación de datos.