我有一个大项目,有很多NSLog()
个电话。当某些事情发生时NSLog()
有效,我不知道调用了哪个NSLog
。如何找到在类文件中调用NSLog()
的地方?
我的NSLog
是这样的:NSLog(@"%@", someArray);
这是日志:
2013-04-23 20:43:38.257 myProj[2101:707] {
id = 1;
version = 1;
}
myProj[2101:707]
在这里意味着什么?它是否向我提供了有关NSLog
函数在课堂上的位置的任何信息?
答案 0 :(得分:6)
您可以尝试在项目中搜索输出。
例如,如果输出是
This is my output with values 3.1415 and 1.2345.
按 cmd shift F 并搜索“这是我的输出值”
您还可以在搜索字词中插入占位符:
答案 1 :(得分:1)
将所有NSLog用法转换为DLog,然后打印日志语句:
输出到日志的每一行。通过这种方式,您可以立即看到所有日志记录的完成位置。 DLog是比NSLog更好的日志记录机制,您应该在所有项目中开始使用它。
将pch文件中的DLog定义为:
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
答案 2 :(得分:0)
您可以使用the function class_getName
获取放置日志语句的对象的类名,并在NSLog()
中包含类名。
像这样:
#import <objc/runtime.h>
…
NSLog("%@ Some Log Statement", class_getName([self class]));