2012-01-24 8 views
10

Когда я использую NSLog, я получаю результат, аналогичный следующему:Что означает префикс в NSLog?

2012-01-24 17: 05: 32: 860 App [21856: 71939] {регистрация здесь идет}

Я признаю, что ' 2012-01-24 17: 05: 32: 860 '- это дата, «приложение» - это имя приложения, но я не знаю, что означает «[21856: 71939]». Может кто-то наполнить меня тем, что это такое и где он создан?

Все, что я пытаюсь сделать, это получить журнал, который хорошо прорисовывается, поэтому его легко прочитать, но «[21856: 71939]» варьируется в цифрах, чтобы испортить любые попытки выравнивания. Если бы я знал, как были сгенерированы цифры в «[21856: 71939]», я мог бы добавить пробелы по мере необходимости, чтобы они правильно выстраивались, но это моя единственная идея на данный момент.

Любая помощь была бы оценена :)

+0

Мне также интересно об этом. –

ответ

14

21856 - это идентификатор процесса. 71939 - идентификатор потока.

Вы можете создать эту часть журнала по своему усмотрению с помощью:

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

Edit 2014-09-23:

По крайней мере, на тренажере в прошивке 8, второе число - это pthread_threadid_np темы.

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

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

Все еще действует. Однако это работает только на самом устройстве, а не на симуляторе. – batkuip

3

IIRC, то 21856 процесс PID и 71939 является своего рода идентификатором потока.

0

Это идентификатор потока, но я действительно не знаю, как они сгенерированы.

вы можете получить его самостоятельно, используя этот

pthread_mach_thread_np(pthread_self()) 

, но это не ответ, как вы бы установить его с правильной прокладкой. С другой стороны, когда вы отлаживаете, перейдите на последнюю вкладку (Показать навигатор журнала), дважды щелкните по Debug App, он будет хорошо отображаться

Смежные вопросы