Registro en Swift (iOS/macOS): SwiftyBeaver, XCGLogger, OSLog

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Registro para Swift (iOS/macOS): las mejores soluciones



El registro es una parte esencial del desarrollo de cualquier aplicación. Para Swift (iOS/macOS) existen numerosas herramientas que permiten rastrear errores de manera eficiente, depurar código y analizar el comportamiento de la aplicación. En este artículo, revisaremos las mejores bibliotecas y soluciones integradas para el registro, sus características, ventajas y ejemplos de uso.



¿Por qué es necesario el registro en Swift?

El registro ayuda a los desarrolladores a:

  • Rastrear la ejecución del código en tiempo real.
  • Detectar y corregir errores en etapas tempranas.
  • Analizar el rendimiento de la aplicación.
  • Recopilar datos para auditorías posteriores.


Solución integrada: OSLog (Unified Logging)

A partir de iOS 10 y macOS Sierra, Apple presentó OSLog, un potente sistema de registro integrado en los sistemas operativos. Ofrece alto rendimiento y seguridad.



Ejemplo de uso de OSLog

import os.log

let log = OSLog(subsystem: "com.example.app", category: "network")os_log("Solicitud enviada: %@", log: log, type: .info, "https://api.example.com")

// Para erroresos_log("Error de conexión: %@", log: log, type: .error, error.localizedDescription)


Ventajas de OSLog:

  • No requiere instalar bibliotecas de terceros.
  • Funciona a nivel del sistema, admite filtrado en Console.app.
  • Cifra automáticamente los datos en modo producción.


SwiftyBeaver — logger multiplataforma

SwiftyBeaver es una de las bibliotecas de registro más populares para Swift. Es compatible con iOS, macOS, tvOS y watchOS. Sus principales características incluyen: salida a color en la consola, escritura en archivos, envío a servicios en la nube (por ejemplo, Loggly, Elasticsearch).



Instalación mediante Swift Package Manager

// En Package.swiftdependencies: [    .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "2.0.0")]


Ejemplo de uso de SwiftyBeaver

import SwiftyBeaver

let log = SwiftyBeaver.self

// Configuración de destinoslet console = ConsoleDestination() // salida a consolalet file = FileDestination() // escritura en archivo

// Formateoconsole.format = "$DHH:mm:ss$d $L $N.$F:$l - $M"

// Agregar destinoslog.addDestination(console)log.addDestination(file)

// Registrolog.info("Aplicación iniciada")log.error("Error al cargar datos: \\(error.localizedDescription)")


Características de SwiftyBeaver:

  • Soporte de codificación por colores de niveles (verbose, debug, info, warning, error).
  • Posibilidad de enviar registros al servidor mediante HTTP.
  • Configuración flexible del formato de salida.


XCGLogger — logger ligero para iOS/macOS

XCGLogger es otra solución popular, enfocada en la simplicidad y la velocidad. Es ideal para proyectos pequeños y prototipado rápido.



Ejemplo de uso de XCGLogger

import XCGLogger

let log = XCGLogger.default

// Configuraciónlog.setup(level: .debug, showLogIdentifier: false, showFunctionName: true, showThreadName: true, showLevel: true, showFileNames: true, showLineNumbers: true, showDate: true)

// Registrolog.debug("Depuración: valor x = \\(x)")log.warning("Advertencia: nivel bajo de batería")


Ventajas de XCGLogger:

  • Cantidad mínima de dependencias.
  • Soporte de filtrado por niveles de registro.
  • Posibilidad de integración con Crashlytics y otros servicios.


Comparación de bibliotecas de registro

Recommendations

Biblioteca Rendimiento