Logging in Swift (iOS/macOS): SwiftyBeaver, XCGLogger, OSLog

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Logging für Swift (iOS/macOS): Die besten Lösungen



Logging ist ein wesentlicher Bestandteil der Entwicklung jeder Anwendung. Für Swift (iOS/macOS) gibt es zahlreiche Werkzeuge, um Fehler effektiv zu verfolgen, Code zu debuggen und das Anwendungsverhalten zu analysieren. In diesem Artikel betrachten wir die besten Bibliotheken und integrierten Lösungen für das Logging, ihre Besonderheiten, Vorteile und Anwendungsbeispiele.



Warum ist Logging in Swift wichtig?

Logging hilft Entwicklern:

  • Die Codeausführung in Echtzeit zu verfolgen.
  • Fehler frühzeitig zu erkennen und zu beheben.
  • Die Anwendungsleistung zu analysieren.
  • Daten für spätere Audits zu sammeln.


Integrierte Lösung: OSLog (Unified Logging)

Ab iOS 10 und macOS Sierra hat Apple OSLog eingeführt – ein leistungsstarkes, in die Betriebssysteme integriertes Logging-System. Es bietet hohe Leistung und Sicherheit.



Beispiel für die Verwendung von OSLog

import os.log

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

// Für Fehleros_log("Verbindungsfehler: %@", log: log, type: .error, error.localizedDescription)


Vorteile von OSLog:

  • Keine Installation von Drittanbieter-Bibliotheken erforderlich.
  • Funktioniert auf Systemebene, unterstützt Filterung in der Console.app.
  • Verschlüsselt Daten automatisch im Produktionsmodus.


SwiftyBeaver – Plattformübergreifender Logger

SwiftyBeaver ist eine der beliebtesten Bibliotheken für das Logging in Swift. Sie unterstützt iOS, macOS, tvOS und watchOS. Hauptfunktionen: farbige Konsolenausgabe, Dateischreibung, Versand an Cloud-Dienste (z. B. Loggly, Elasticsearch).



Installation über Swift Package Manager

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


Beispiel für die Verwendung von SwiftyBeaver

import SwiftyBeaver

let log = SwiftyBeaver.self

// Konfiguration der Zielelet console = ConsoleDestination() // Ausgabe in die Konsolelet file = FileDestination() // Schreiben in eine Datei

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

// Ziele hinzufügenlog.addDestination(console)log.addDestination(file)

// Logginglog.info("Anwendung gestartet")log.error("Fehler beim Laden der Daten: \\(error.localizedDescription)")


Besonderheiten von SwiftyBeaver:

  • Unterstützung von Farbcodierung für Ebenen (verbose, debug, info, warning, error).
  • Möglichkeit, Logs über HTTP an einen Server zu senden.
  • Flexible Konfiguration des Ausgabeformats.


XCGLogger – Leichtgewichtiger Logger für iOS/macOS

XCGLogger ist eine weitere beliebte Lösung, die auf Einfachheit und Geschwindigkeit ausgelegt ist. Ideal für kleine Projekte und schnelles Prototyping.



Beispiel für die Verwendung von XCGLogger

import XCGLogger

let log = XCGLogger.default

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

// Logginglog.debug("Debug: Wert x = \\(x)")log.warning("Warnung: Niedriger Batteriestand")


Vorteile von XCGLogger:

  • Minimale Anzahl von Abhängigkeiten.
  • Unterstützung der Filterung nach Logging-Ebenen.
  • Möglichkeit der Integration mit Crashlytics und anderen Diensten.


Vergleich der Logging-Bibliotheken

Empfehlungen

Bibliothek Leistung