2009-10-03 6 views
2

Existe-t-il un moyen de forcer la suppression de tous les enregistrements dans une application Mac OS X de bureau Cocoa?Comment pouvez-vous supprimer toute connexion dans l'application Cocoa?

Parfois, une partie du système ou un plug-in (qui est hors de votre contrôle) enregistre les messages au nom de votre application sur la console (system.log).

Y at-il un moyen de supprimer toute la journalisation dans votre application?

+0

Pourquoi? Si vous souhaitez filtrer les entrées de journal qui ne proviennent pas de votre code, ajoutez simplement un tag spécial à vos instructions de log et grep pour cela. – user57368

+0

Il pourrait y avoir plusieurs raisons. Par exemple, vous voulez peut-être empêcher un plugin malveillant de votre application d'inonder la console. –

+0

Il semble que vous ayez besoin d'une discussion directe avec Apple Engineering autour de ces pièces; autour de la boxe de sable et autour de la sortie de la console. La suppression des messages d'un code malicieux semble opportune (et je l'enverrais probablement à/dev/null), mais semble être la mauvaise façon de procéder. –

Répondre

4

@gabe: vient va suggérer quelque chose de semblable - juste essayé dehors, et un simple « fclose (stderr) "semble empêcher toute sortie.

+0

qui fait effectivement l'affaire. thx loren. –

0

J'ai aussi fait cela chaque fois que j'ai besoin de rediriger la sortie de la console pour une vue personnalisée:

stderr->_write = RedirectOutputToView; 
stdout->_write = RedirectOutputToView; 

Où RedirectOutputToView a le prototype suivant:

int RedirectOutputToView(void *inFD, const char *buffer, int size); 
Questions connexes