Swift:
Journalisation

Comment faire :

En Swift, vous pouvez écrire des logs dans la console avec des instructions print ou bien utiliser l’API os.log plus flexible, qui se connecte au système de journalisation unifié sur les plateformes Apple.

import os.log

let logger = OSLog(subsystem: "com.votreapp.domaine", category: "network")

func fetchData() {
    // Simple instruction print
    print("Début de la récupération")
    
    // Journaliser un événement de niveau info avec os.log
    os_log(.info, log: logger, "Récupération de données depuis l'API.")
    
    do {
        let data = try performNetworkRequest()
        // Journaliser un événement de niveau debug
        os_log(.debug, log: logger, "Données reçues : %@", data.description)
    } catch {
        // Journaliser un événement de niveau erreur
        os_log(.error, log: logger, "Échec de la récupération de données : %@", error.localizedDescription)
    }
}

func performNetworkRequest() throws -> Data {
    // Simuler une requête réseau
    return Data()
}

Un exemple de sortie sur la console pourrait ressembler à ceci :

Début de la récupération
Récupération de données depuis l'API.
Données reçues : Quelques octets de données...

Pour les erreurs, cela pourrait être :

Échec de la récupération de données : La connexion Internet semble être hors ligne.

Approfondissement

La journalisation en Swift prend une nouvelle dimension de puissance et d’efficacité avec le système de journalisation unifié introduit dans iOS 10 et macOS Sierra. Contrairement à l’instruction print qui va directement à la console, ce système est basé sur des activités, et vous permet de filtrer les messages de journal en fonction de leur importance et s’ils sont destinés à des builds de débogage ou de publication.

Le contexte historique encadre l’évolution de la journalisation dans iOS et macOS, passant de simples instructions print vers des outils complets qui s’intègrent avec l’application Instruments et la Console, offrant des moyens sophistiqués pour analyser les logs.

Il existe une gamme d’alternatives à la journalisation au sein de Swift, telles que des bibliothèques tierces comme CocoaLumberjack, qui offre une couche macro par-dessus le système de journalisation unifié. Elle fournit un contrôle amélioré sur le formatage des logs, la gestion des fichiers et les options de performances.

Enfin, pour les détails de mise en œuvre ; OSLog est conçu pour être non seulement efficace mais aussi soucieux de la vie privée, avec la capacité de masquer les données privées lors de la journalisation. Il catégorise les logs en niveaux de faille, d’erreur, d’information et de débogage, chacun offrant une granularité différente pour le dépannage.

Voir Aussi