Registro em aplicações Swift: melhores práticas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que você precisa de logging em Swift?



Logging é uma ferramenta fundamental para desenvolvedores, permitindo rastrear o estado da aplicação, identificar erros e analisar o comportamento do usuário. No ecossistema Swift (iOS/macOS), um logging bem configurado pode economizar horas de depuração e ajudar a evitar problemas em versões de produção.



Neste artigo, abordaremos as melhores práticas de logging em Swift: desde as soluções nativas da Apple até bibliotecas de terceiros populares. Você aprenderá como não sobrecarregar a aplicação, como proteger dados sensíveis e como tornar os logs úteis para toda a equipe.



1. Ferramentas nativas: OSLog e print



1.1 Por que print() é ruim



A maneira mais simples de logging é o comando print(). No entanto, em versões de produção, não é recomendado usá-lo:

  • Não há níveis de importância (info, warning, error).
  • Não é possível filtrar logs no console do Xcode.
  • O texto é exibido mesmo em builds de release (se não for removido manualmente).
  • Não há estruturação de dados.


1.2 OSLog — o padrão da Apple



A partir do iOS 10 e macOS 10.12, a Apple recomenda usar os_log do framework os.log. Este é um mecanismo nativo que funciona de forma rápida e segura.



import os.log

let logger = Logger(subsystem: "com.example.myapp", category: "network")

func fetchData() { logger.info("Início do carregamento de dados") // ... código de carregamento logger.warning("O servidor respondeu com atraso") // ... tratamento de erro logger.error("Falha ao conectar ao servidor: \\(error.localizedDescription)")}


Vantagens do OSLog:

  • Desativação automática em builds de release (exceto para erros).
  • Suporte a categorias e subsistemas para filtragem.
  • Integração com Console.app e Xcode.
  • Segurança: dados privados são automaticamente ocultados (marcador private).


2. SwiftLog — API universal



2.1 O que é SwiftLog?



SwiftLog é uma biblioteca open-source da Apple que fornece uma interface unificada para logging. Ela é independente de plataforma e permite conectar diferentes backends (OSLog, arquivos, servidores).



2.2 Instalação e configuração



Adicione o SwiftLog via Swift Package Manager:



// Package.swiftdependencies: [    .package(url: "https://github.com/apple/swift-log.git", from: "1.5.0")]


Exemplo de uso:



import Logging

let logger = Logger(label: "com.example.app")

logger.info("Aplicação iniciada")logger.warning("Bateria baixa: \\(batteryLevel)%")logger.error("Erro crítico: \\(error)")

// Configuração do nível de loggingLoggingSystem.bootstrap { label in var handler = StreamLogHandler.standardOutput(label: label) handler.logLevel = .debug return handler}


Principais recursos:

  • Níveis: trace, debug, info, notice, warning, error, critical.
  • Metadados (quaisquer campos adicionais).
  • Backend facilmente substituível (por exemplo, para envio ao Crashlytics).
  • Custo zero quando o nível está desativado (mais rápido que print).


3. Bibliotecas de terceiros: CocoaLumberjack e Pulse



3.1 CocoaLumberjack — flexibilidade e potência



Uma das bibliotecas mais populares para Objective-C e Swift. Permite escrever logs em arquivos, console, servidor remoto e até mesmo em banco de dados.



import CocoaLumberjack

// ConfiguraçãoDDLog.add(DDOSLogger.sharedInstance) // Consolelet fileLogger = DDFileLogger()fileLogger.rollingFrequency = 60 * 60 * 24 // 24 horasDDLog.add(fileLogger)

// UsoDDLogInfo("Usuário autenticado")DDLogWarn("Timeout de rede")DDLogError("

Blogs

Book Recommendations