Registro para Swift (iOS/macOS): visão geral das melhores soluções
O registro é um dos componentes-chave do desenvolvimento de aplicativos de qualidade para iOS e macOS. Ele ajuda a rastrear erros, analisar o comportamento do usuário e depurar cenários complexos. No ecossistema Swift, existem várias ferramentas testadas, cada uma com seus pontos fortes. Neste artigo, veremos três das melhores soluções: SwiftyBeaver, CocoaLumberjack e OSLog (solução nativa da Apple).
Por que não podemos confiar apenas no print()?
Muitos desenvolvedores iniciantes usam print() para exibir informações de depuração. No entanto, essa abordagem tem desvantagens significativas:
- Falta de níveis de registro (debug, info, error).
- Impossibilidade de filtrar mensagens de forma flexível.
- A saída no console diminui o desempenho do aplicativo em produção.
- Não há suporte embutido para coleta remota de logs.
Ferramentas profissionais resolvem esses problemas e dão ao desenvolvedor controle total sobre o processo.
1. SwiftyBeaver — registro flexível e bonito
SwiftyBeaver é uma das bibliotecas mais populares para Swift. Ela fornece uma API conveniente, suporte para saída colorida no console e a capacidade de enviar logs para serviços em nuvem (por exemplo, para seu próprio painel em nuvem ou sistemas de terceiros).
Instalação
Adicione a dependência no Package.swift ou use CocoaPods:
// Swift Package Managerdependencies: [ .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "2.0.0")]Exemplo de uso
import SwiftyBeaver
let log = SwiftyBeaver.self
// Configuração da saída no console (com cor)let console = ConsoleDestination()console.format = "$DHH:mm:ss$d $L $M"log.addDestination(console)
// Registrolog.verbose("Esta é uma mensagem verbose")log.debug("Depuração")log.info("Informação")log.warning("Aviso")log.error("Erro")Características do SwiftyBeaver
- Suporte a 5 níveis de registro (verbose, debug, info, warning, error).
- Saída colorida no console do Xcode (muito conveniente para depuração).
- Possibilidade de enviar logs para armazenamento em nuvem (SwiftyBeaver Cloud).
- Filtragem por nível e tags.
- Impacto mínimo no desempenho.
2. CocoaLumberjack — padrão da indústria
CocoaLumberjack é um framework poderoso usado em grandes projetos como Slack, Twitter e muitos outros. Ele é focado em alto desempenho e flexibilidade de configuração.
Instalação
// CocoaPodspod 'CocoaLumberjack/Swift'Exemplo de uso
import CocoaLumberjack
// ConfiguraçãoDDLog.add(DDOSLogger.sharedInstance) // Saída no console
// RegistroDDLogDebug("Mensagem de depuração")DDLogInfo("Informação")DDLogWarn("Aviso")DDLogError("Erro")Vantagens do CocoaLumberjack
- Desempenho excepcional (gravação assíncrona).
- Suporte a múltiplos "destinos" (console, file, database).
- Sistema flexível de formatação de logs.
- Possibilidade de criar loggers personalizados.
- Excelente integração com projetos Objective-C.
3. OSLog — solução nativa da Apple
A partir do iOS 10 e macOS 10.12, a Apple apresentou o OSLog — um sistema de registro embutido que opera no nível do kernel. Ele é ideal para builds de produção e não requer a instalação de bibliotecas de terceiros.
Exemplo de uso
import OSLog
let logger = Logger(subsystem: "com.myapp", category: "network")
logger.debug("Conexão estabelecida")
``` Também na biblioteca
Hilt/Dagger para Kotlin: guia completo com exemplos
Eigen para C++: guia completo com exemplos práticos
GraphQL para C# (.NET): Guia Completo da Biblioteca GraphQL.NET
GraphQL em PHP: bibliotecas webonyx/graphql-php e Lighthouse para criação de APIs