当我使用NSLog时,得到的输出类似于以下内容:

2012-01-24 17:05:32:860 App [21856:71939] {此处记录日志}

我认识到'2012-01-24 17:05:32:860'是日期,'App'是应用程序名称,但是我不知道'[21856:71939]'是什么意思。有人可以告诉我这是什么以及在哪里产生的吗?

我要尝试做的就是很好地记录日志,以便于阅读,但是'[21856:71939]'的数字变化足以混淆所有对齐尝试。如果我知道“[21856:71939]”中数字的生成方式,我可以根据需要添加空格以使其正确排列,但这是我目前唯一的想法。

任何帮助将非常感激 :)

最佳答案

进程ID为21856。 71939是线程ID。

您可以使用以下方法自行生成日志的这一部分:

[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]

关于objective-c - NSLog中的前缀是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8995650/

10-12 01:47