2013-01-07 13 views
8

Sto indagando se riesco ad ottenere prestazioni migliori da asl_log rispetto a NSLog su iPhone/iOS (probabilmente ...) ma sono bloccato in un punto in cui non sembra che l'output del registro di asl venga visualizzato nel sistema Console (visualizzabile da un numero di app come System Console, iConsole, ecc.). So che lo sto configurando sin da quando apro con ASL_OPT_STDERR e vedo le voci del registro in XCode quando il dispositivo è collegato.come far apparire asl_log nell'output della console di sistema iOS?

ho esplorato un sacco di cose interessanti online (ad esempio http://boredzo.org/blog/archives/2008-01-20/asl-logging, https://github.com/robbiehanson/CocoaLumberjack) e la migliore speranza sembrava essere asl_open() con dotazione di "com.apple.console" ma ahimè, l'uscita ancora non compare in Console. NSLog è l'unica opzione?

risposta

5

È necessario impostare i privilegi di lettura sul messaggio, utilizzando ReadUID o ReadGID. L'impostazione su -1 consentirà a qualsiasi utente/gruppo di visualizzare il messaggio in base alla documentazione del file di intestazione.

aslmsg msg = asl_new(ASL_TYPE_MSG); 
asl_set(msg, ASL_KEY_READ_UID, "-1"); 
asl_log(NULL, msg, ASL_LEVEL_NOTICE, "Hello, world!"); 
asl_free(msg); 
9

Aggiungi STDERR all'ASL e poi si presenta nella console

asl_add_log_file(NULL, STDERR_FILENO); 
Problemi correlati