web-dev-qa-db-fra.com

Apple Approche de journalisation recommandée pour Swift

Remarque:

Ce n'est pas un double des questions liées

Objectif:

  • Je ne recherche pas de différences print vs NSLog
  • En fait, je ne veux pas utiliser l'un d'eux (actuellement en utilisant print)
  • Je cherche un Apple moyen recommandé, ne semble tout simplement pas trouver la commande/documentation, je sais juste qu'il existe.

Mise en œuvre actuelle:

Actuellement, j'utilise des instructions print avec certaines fonctions globales

Question

  1. Quelle est la méthode/approche recommandée pour gérer les erreurs (je ne veux pas utiliser NSLog car ils écriraient dans la console de l'appareil)
  2. C'est uniquement à des fins de débogage pendant le développement
16
user1046037

Jeter un coup d'œil à os_log . Il offre tout ce que vous recherchez.

Avertissement:

Je vous recommande fortement de voir ce fil de Swift forums . Tl; dr

Même s'il s'agit de la recommandation d'Apple, son utilisation est débattue en raison de préoccupations concernant la récupération des journaux:

  • la récupération des journaux n'est pas un processus trivial. C'est en fait difficile. Voir ici
  • Pour la plupart des utilisateurs, le fichier journal peut être compris entre 100 et 300 Mbs. Ce qui rend difficile l'envoi.

C'est idéal pour le débogage pendant le développement, mais laborieux pour déclencher, récupérer, envoyer par les utilisateurs de votre application.


Exemple:

let customLog = OSLog(subsystem: "com.your_company.your_subsystem_name", category: "Category")
os_log("This is info that may be helpful during development or debugging.", log: customLog, type: .debug)

Quelques bonnes références:

  • WWDC 2016 Unified Logging and Tracing .
  • Ce réponse par Rob. Il explique que NSLog est obsolète et certains des avantages de l'utilisation du nouveau os_log bibliothèque.
  • Vous pouvez également obtenir les journaux en utilisant l'approche mentionnée ici . Assurez-vous de voir ? les réponses.

La raison os_log est si puissant parce que:

  • offre différents niveaux de journalisation
  • a différentes catégories
  • private et public journaux
  • il est léger et construit par Apple. Ne nécessite pas de pods
  • contrairement à print qui n'est disponible que lors du débogage, os_log peut être utilisé pour jeter un œil à une application publiée (en temps réel) et afficher les journaux dans l'application console.

enter image description here

Ceci est idéal pour observer les changements de cycle de vie de l'application sans Xcode gourmand . Xcode ne permettra pas de mettre l'application en état suspendu ...


Remarque: os_log n'est disponible que pour + iOS10

Il existe également de nouvelles vidéos de la WWDC 2018 et 2019, mais mettent davantage l'accent sur os_signpost. Voir:

30
Honey