当我使用NSLog时,我得到的输出类似于以下内容:
2012-01-24 17:05:32:860 App [21856:71939] {logging goes here}
我认识到'2012-01-24 17:05:32:860'是日期,'App'是应用名称,但我不知道'[21856:71939]'是什么意思。有人可以告诉我这是什么以及它产生于何处?
我所要做的就是让日志记录很好,所以它很容易阅读,但'[21856:71939]'的数字变化足以弄乱任何对齐尝试。如果我知道'[21856:71939]'中的数字是如何生成的,我可以根据需要添加空格以使其正确排列,但这是我此时唯一的想法。
非常感谢任何帮助:)
答案 0 :(得分:14)
21856是进程ID。 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]
答案 1 :(得分:3)
IIRC,21856
是进程PID,71939
是某种线程标识符。
答案 2 :(得分:0)
这是一个线程ID,但我实际上并不知道它们是如何生成的。
你可以使用这个
自己抓住它 pthread_mach_thread_np(pthread_self())
但这并没有回答你如何设置正确的衬里。另一方面,当你正在调试时,转到最后一个选项卡(显示日志导航器),双击调试应用程序,它会很好地显示