web-dev-qa-db-fra.com

Affichage des messages os_log dans la console du périphérique

J'essaie de déconnecter mon application via la journalisation unifiée (os_log).

Voici l'initialisation du journal:

var osLog : OSLog = OSLog(subsystem: "com.test.testapp", category: "native-tester")

Et voici comment je l'utilise:

os_log("iOS App initialized successfully!", log: osLog, type:.info)

Lorsque le débogage de l'application est normal, les journaux apparaissent correctement sur la sortie de la console, mais lorsque je regarde la console du périphérique (affichée dans la fenêtre "Périphériques et simulateurs"), je ne les vois pas du tout.

Cet article indique que vous devez configurer le système pour activer les journaux de débogage à l'aide de

Sudo log config --mode "level:debug" --subsystem com.test.testapp

Mais cela n'a pas semblé faire la différence. Je suppose que c'est parce que je configure le Mac pour afficher les journaux, pas l'iPad.

Comment afficher les journaux ipad/iphone de os_log dans la console du périphérique?

11
Nitay

La fenêtre "Périphériques et simulateurs" affiche uniquement les rapports d'incident. Utilisez l'application Console ou le terminal, via la commande log --stream, pour voir la sortie du journal en direct.

Pour voir les messages du journal en temps réel du périphérique via l'application Console, que ce soit à partir de Xcode ou directement à partir du périphérique:

  • Ouvrez Console.app.
  • Cliquez sur le nom du périphérique dans le panneau de gauche, sous "Périphériques".
  • Sélectionnez Action , puis Inclure les messages d’information dans le menu. Si vous utilisez également des messages de niveau .debug, veillez à bien sélectionner Inclure les messages de débogage . (Sans ces éléments sélectionnés, la console affiche uniquement les messages de niveau .default, .fault et .error.)

Si vous ne voyez toujours pas les messages, essayez d'entrer cette commande Terminal pour configurer les niveaux de journalisation de votre application:

Sudo log config --subsystem com.test.testapp --mode level:debug

Ceci active la journalisation de niveau .debug- pour le sous-système "com.test.testapp" (qui inclut les messages .info et .default).

Si vous souhaitez conserver les messages, plutôt que la valeur par défaut de mémoire uniquement, activez la persistance pour les trois niveaux en même temps, comme suit:

Sudo log config --subsystem com.test.testapp --mode level:debug,persist:debug

Quels que soient les paramètres du journal, seuls les rapports d'incident apparaîtront dans la fenêtre "Périphériques et simulateurs".

11
leanne

Les journaux de type .debug et .info sont par défaut uniquement de la mémoire (ils ne sont pas enregistrés sur le disque). Ils ne seront donc pas visibles sur la console du périphérique.

Informations détaillées: https://developer.Apple.com/documentation/os/logging?language=objc

Voici aussi la jolie WWDC: https://developer.Apple.com/videos/play/wwdc2016/721/

4
Tomasz Czyżak

Autre écueil: si vous avez défini OS_ACTIVITY_MODE sur disable dans votre schéma, vous ne verrez aucun journal pour votre application dans la console.

Vous devez supprimer ou décocher cet argument.

3
samwize