2012-01-24 13 views
10

Quando uso NSLog, ottengo un risultato simile al seguente:Che cosa significa il prefisso in NSLog?

2012-01-24 17: 05: 32: 860 App [21856: 71.939] {registrazione va qui}

riconosco che ' 2012-01-24 17: 05: 32: 860 'è la data,' App 'è il nome dell'app, ma non ho idea di cosa significa' [21856: 71939] '. Qualcuno può spiegarmi cosa è e dove è generato?

Tutto quello che sto cercando di fare è ottenere il logging di quelle linee in modo che sia facile da leggere, ma il '[21856: 71939]' varia di cifre abbastanza da rovinare qualsiasi tentativo di allineamento. Se avessi saputo come sono stati generati i numeri in "[21856: 71939]", avrei potuto aggiungere gli spazi necessari per renderlo allineato correttamente, ma questa è la mia unica idea a questo punto.

Qualsiasi aiuto sarebbe molto apprezzato :)

+0

Sono anche curioso di questo. –

risposta

14

21856 è l'id di processo. 71939 è l'ID del thread.

È possibile generare questo parte del log sul proprio utilizzando:

[NSString stringWithFormat:@"[%ld,%lx]", 
    (long) getpid(), 
    (long) pthread_mach_thread_np(pthread_self())]; 

Edit 2014/09/23:

Almeno sul simulatore in iOS 8, il il secondo numero è ora il pthread_threadid_np della discussione.

__uint64_t threadId; 
    if (pthread_threadid_np(0, &threadId)) { 
     threadId = pthread_mach_thread_np(pthread_self()); 
    } 

    [NSString stringWithFormat:@"[%ld,%llu]", (long) getpid(), threadId] 
+1

Ancora valido. Tuttavia questo funziona solo sul dispositivo reale non sul simulatore. – batkuip

3

IIRC, il 21856 è il processo PID, e la 71939 è una sorta di identificatore thread.

0

È un ID thread, ma in realtà non so come vengono generati.

si può afferrare da soli utilizzando questo

pthread_mach_thread_np(pthread_self()) 

ma questo non rispondere come si dovrebbe configurarlo con fodera corretta. Dall'altra nota, quando esegui il debug, vai all'ultima scheda (Mostra il log Navigator), fai doppio clic su Debug App, apparirà in modo elegante