Comment désactiver NSLog?
Greensource
Membre
C'est tout simple je voudrais qu'un programme de type Command Line Utility puisse recevoir un argument de type:
./monBeauProg -silent
Auquel cas comme vous vous en douter les NSLog ne ferait plus un bruit, shuuuut...
Un mec sur le net propose de bidouiller un peu il fait:
Ce qui remplace les NSLog par des commentaires
Mais bon c'est quand même pas top...
Je cherche plutôt une option sur NSLog directement.
./monBeauProg -silent
Auquel cas comme vous vous en douter les NSLog ne ferait plus un bruit, shuuuut...
Un mec sur le net propose de bidouiller un peu il fait:
#ifndef DEBUG<br />#define NSLog //<br />#endif
Ce qui remplace les NSLog par des commentaires
Mais bon c'est quand même pas top...
Je cherche plutôt une option sur NSLog directement.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il faut remplacer tous tes appels à NSLog par des appels à MyLog, qui sera une fonction C perso en charge de tester si tu es en mode "silencieux" (et si oui ne rien faire) ou non (et dans ce cas faire le NSLog).
Bon un truc bâtard en C donnerait qqch comme ça. A traduire en Objective-C/Cocoa (ou pas... tiens je sais pas comment on a accès aux arguments en ligne de commande en Cocoa, autrement qu'en mettant notre code dans le main.m ?)
A toi ensuite de voir où tu mets la variable booléenne qui va contenir l'état de ton mode silencieux, là c'est une variable locale donc c'est pas top mais bon...
Bonjour,
Dans la doc de NSLog il n'y a pas d'option disponible ! Juste que ça renvoie à NSLogv et la doc de NSLogv dit que si tu change la destination de STDERR_FILENO alors ça écrira là aussi (en plus de Apple System Log qu'on peut voir avec l'appli Console).
Tu pourrais essayer de changer ce STDERR_FILENO en fonction de ton argument -silent dans main mais ça ne sera pas beaucoup plus propre ?
Et ça ne fonctionnera que pour tes NSLog à toi: j'ai essayé de faire ça pour des messages envoyés par Cocoa (un bug de ICAApplication dans la fonction importImage) et ça redirigeait bien mes messages mais eux seuls, pas ceux envoyés par Cocoa pour un TextField soit-disant disparu ..
PS: le code n'est pas de moi http://www.dribin.org/dave/blog/archives/2008/05/27/sb_warnings/