O Cocoalumberjack é uma estrutura de registro rápida e simples, mas poderosa e flexível para macOS, iOS, TvOS, WatchOS e Visionos.
Primeiro, instale o Cocoalumberjack via Cocoapods, Cartago, Swift Package Manager ou manualmente. Em seguida, use DDOSLogger para iOS 10 e posterior, ou DDTTYLogger e DDASLLogger para versões anteriores para iniciar mensagens de registro.
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end Nota: Swift é um subespec que incluirá todo o código OBJ-C mais o Swift, então isso é suficiente. Para mais detalhes sobre como usar o Swift com o Lumberjack, consulte esta conversa.
Para Objective-C, use o seguinte:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endCartago é um gerente de dependência leve para Swift e Objective-C. Ele aproveita os módulos cocoatouch e é menos invasivo que os cocoapods.
Para instalar com Cartago, siga as instruções sobre Cartago
Cartfile
github "CocoaLumberjack/CocoaLumberjack"
A partir do Cocoalumberjack 3.6.0, você pode usar o Swift Package Manager como método de integração. Se você deseja usar o Swift Package Manager como método de integração, use o Xcode para adicionar a dependência do pacote ou adicionar a seguinte dependência ao seu pacote.swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , Observe que você pode precisar adicionar os dois produtos, CocoaLumberjack e CocoaLumberjackSwift ao seu alvo, pois o SPM às vezes falha em detectar que CocoaLumberjackSwift depende do CocoaLumberjack .
Se você deseja instalar o Cocoalumberjack manualmente, leia o guia de instalação manual para obter mais informações.
Geralmente, você pode simplesmente import CocoaLumberjackSwift . Se você instalou o cocoalumberjack usando cocoapods, precisará usar 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 " ) Se você estiver usando o Lumberjack como estrutura, poderá @import CocoaLumberjack; . Caso contrário, #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 " ); Ao integrar o Lumberjack em um Objective-C existente, é possível executar Multiple methods named 'tag' found with mismatched result, parameter type or attributes .
Adicione #define DD_LEGACY_MESSAGE_TAG 0 Antes de importar o Cocoalumberjack ou adicione #define DD_LEGACY_MESSAGE_TAG 0 ou adicione -DDD_LEGACY_MESSAGE_TAG=0 a outros sinalizadores C / outros_cflags no seu projeto Xcode.
O Cocoalumberjack também é enviado com uma implementação de back-end para o Swift-Log. Basta adicionar o Cocoalumberjack como dependência ao seu alvo SPM (veja acima) e também adicione o produto CocoaLumberjackSwiftLogBackend como dependência ao seu alvo.
Você pode usar DDLogHandler como back-end para o Swift-Log, que encaminhará todas as mensagens para DDLog do Cocoalumjack. Você ainda configurará os madeireiros e os formatados que deseja via DDLog , mas a gravação de mensagens de log será feita usando Logger do Swift-Log.
Nos seus próprios formatados de log, você pode usar a propriedade swiftLogInfo no DDLogMessage para recuperar os detalhes de uma mensagem que é registrada via Swift-Log.
Para usar o Swift-Log com o Cocoalumberjack, dê uma olhada no seguinte trecho de código para ver como começar.
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É semelhante em conceito a outras estruturas populares de registro, como o LOG4J, mas foi projetado especificamente para o Objective-C e aproveita os recursos como threading múltiplo, despacho central grande (se disponível), operações atômicas sem trava e a natureza dinâmica do tempo de execução Objective-C.
Na maioria dos casos, é uma ordem de magnitude mais rápida que o NSLog.
É preciso apenas uma única linha de código para configurar o Lumberjack quando o seu aplicativo for lançado. Em seguida, basta substituir suas instruções NSLOG por instruções ddlog e é isso. (E as macros DDLOG têm exatamente o mesmo formato e sintaxe que o NSLog, por isso é super fácil.)
Uma instrução LOG pode ser enviada para vários loggers, o que significa que você pode fazer login em um arquivo e o console simultaneamente. Quer mais? Crie seus próprios loggers (é fácil) e envie suas instruções de log sobre a rede. Ou para um banco de dados ou sistema de arquivos distribuído. O céu é o limite.
Configure seu log como você quiser. Altere os níveis de log por arquivo (perfeito para depuração). Altere os níveis de log por logger (console verbose, mas o arquivo de log conciso). Altere os níveis de log por configuração do Xcode (depuração detalhada, mas a liberação concisa). Faça com que suas declarações de log compilassem a construção da versão. Personalize o número de níveis de log para o seu aplicativo. Adicione seu próprio registro de grão fino. Altere dinamicamente os níveis de log durante o tempo de execução. Escolha como e quando você deseja que seus arquivos de log sejam enrolados. Carregue seus arquivos de log para um servidor central. Compressa arquivos de log arquivados para salvar o espaço do disco ...
A versão atual do Lumberjack requer:
De acordo com detalhes de privacidade do aplicativo na App Store, a Apple está solicitando que os desenvolvedores de aplicativos forneçam informações sobre sua coleta de dados, os mantenedores do US SDK devem fornecer os mesmos dados.
Por padrão, o Cocoalumberjack não coleta nenhum dado por conta própria.
Veja nossa lista de práticas de coleta de dados.
O Cocoalumberjack é uma estrutura de madeira que facilita o envio desses logs para plataformas diferentes.
É por isso que a coleta de dados pode ocorrer com bastante facilidade, se os desenvolvedores de aplicativos incluirem dados confidenciais em suas mensagens de log.
NOTA IMPORTANTE: Os desenvolvedores de aplicativos são totalmente responsáveis por quaisquer dados confidenciais coletados por meio do nosso sistema de registro!
Em conseqüência, você deve cumprir a política de detalhes de privacidade da Apple (mencionada acima) e documentar as maneiras pelas quais os dados do usuário estão sendo coletados. Como o número de cenários em que os dados podem ser indiretamente coletados através do Cocoalumberjack é bastante grande, depende de você, como desenvolvedores de aplicativos, revisar adequadamente o código do seu aplicativo e identificar esses casos. O que podemos fazer para ajudar é aumentar a conscientização sobre a coleta de dados em potencial por meio de nossa estrutura.
Os dados privados incluem, mas não se limitam a:
Exemplo : DDLogInfo("User: (myUser)") adicionará as informações myUser aos logs; portanto, se eles forem encaminhados para uma terceira parte ou enviados por e -mail, que poderão se qualificar como coleta de dados.