Что означает префикс в 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]" , я мог бы добавить пробелы по мере необходимости, чтобы они правильно выстраивались, но это моя единственная идея на данный момент.

Любая помощь будет высоко оценена:)

Ответ 1

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

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

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

Изменить 2014-09-23:

По крайней мере, на симуляторе в iOS 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]

Ответ 2

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

Ответ 3

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

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

    pthread_mach_thread_np(pthread_self())

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