Что означает префикс в 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())
но это не отвечает, как вы настроите его с правильной подкладкой. С другой стороны, когда вы отлаживаетесь, перейдите на последнюю вкладку (Показать навигатор журнала), дважды щелкните приложение "Отладка", он будет хорошо отображаться