Messages gênants dans la console Xcode
Dantek
Membre
Alors, sous Xcode, je créé un project -> command line utility -> foundation tool..
le projet est créé.
Je commence à programmer quelques trucs, et maintenant j'essaie l'équivalent de "printf" (qui vient du langage C) en objective-c, donc NSLog.
Voilà le problème, quand j'utilise printf et que je regarde le résultat dans la console, ben ça m'affiche ça parfaitement.
Mais quand j'utilise NSLog, la console m'affiche la date juste avant, ce qui évidemment me gène.
Exemple :
NSLog(@ stone);
m'affichera :
2009-10-13 20:29:56.141 Objective-C_project[811:10b] stone
quand j'ai plusieurs strings d'affilée à afficher, ça pose un problème..
Donc voilà , vous sauriez comment faire pour désactiver l'affichage de la date et du "Objective-C_project[811:10b] juste avant ?
Merci beaucoup
le projet est créé.
Je commence à programmer quelques trucs, et maintenant j'essaie l'équivalent de "printf" (qui vient du langage C) en objective-c, donc NSLog.
Voilà le problème, quand j'utilise printf et que je regarde le résultat dans la console, ben ça m'affiche ça parfaitement.
Mais quand j'utilise NSLog, la console m'affiche la date juste avant, ce qui évidemment me gène.
Exemple :
NSLog(@ stone);
m'affichera :
2009-10-13 20:29:56.141 Objective-C_project[811:10b] stone
quand j'ai plusieurs strings d'affilée à afficher, ça pose un problème..
Donc voilà , vous sauriez comment faire pour désactiver l'affichage de la date et du "Objective-C_project[811:10b] juste avant ?
Merci beaucoup
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mais y'a rien de gênant à mon sens.. m'enfin bon tu peux toujours l'éviter en rajoutant \n devant
Le but est donc d'afficher des messages, datés, dans la console, à vocation de logging et de debug.
Ceci dit si tu veux écrire sur stdout dans le terminal (et non faire du logging dans la console), rien ne t'empêche d'utiliser printf Après-tout l'Objective-C est une surcouche du C :P Et tu peux demander la chaà®ne C à une NSString (cStringUsingEncoding) pour la passer en paramètre
Donc en gros, si je veux de l'affichage "clean" sur la console, je dois utiliser printf.
Et récupérer ces "strings C" avec cStringUsingEncoding pour que ça colle avec des NSStrings au cas où j'en ai besoin
En général soit on log des messages d'infos à fin de debugging (écrits dans les logs de /var/log, consultables par l'application Console.app, dite "la console", fichiers régulièrement gzippé par le système, avec un mécanisme d'autorotation des logs, permettant de monitorer les crash, etc...)...
Soit on écrit des messages persos sur la sortie standard (stdout), dont le contenu est visible dans le terminal dans lequel tu exécutes ton application (Terminal.app)...
Mais ce sont deux possibilités différentes en réalité
Belle explication :-)
Au passage, petit rappel sur les flux d'E/S sur Unix : http://fr.wikipedia.org/wiki/Flux_standard
Qui pourrait s'avérer nécessaire si tu ne connais pas ce domaine Dantek