我即将完成项目,我想在其中添加日志记录。我知道市场上有一些好的记录器(CocoaLumberjack
)。但为此,我需要将log语句添加到每个方法中。随着项目即将完成,有很多方法。那么,有什么方法或解决方法吗? 不向所有方法添加日志语句如果我将添加到任何中心位置,它将适用于所有方法。
我不确定在每个方法之前是否都有这样的Objective-C
运行时函数。
这个方法对我这样的所有情况都有帮助,或者任何新的dev正在编写新方法,然后他不需要记住添加日志语句。
修改:
这仅用于调试目的。我将添加一种控制日志的方法,如关闭和打印某个级别的详细信息。
答案 0 :(得分:5)
不要这样做。认真。由于软件繁琐,用户不喜欢他们的日志文件填满,你也会通过模糊真正重要的消息来惹恼所有其他开发人员。
在调试过程中,您应该只使用NSLog()
这种方式作为绝对的最后手段。即便如此,还有更好的方法(例如,您可以使用dtrace
;如果您要转储所有objc_msgSend()
次调用,除了那些通过{的方法调用之外,您几乎可以看到所有方法调用{1}}和浮点数(如果适用于您的平台)。
如果真的必须制作一个繁琐的应用程序,请创建自己的日志文件,编写自己的日志记录功能(理想情况下使用asl
),即使这样做也是个好主意可以控制的一组标志,例如从用户默认设置启用不同类型的调试输出。
答案 1 :(得分:1)
使用此覆盖的NSObject
类别怎么样?
-(BOOL)respondsToSelector:(SEL)aSelector {
printf("Excessive Log: %s\n", [NSStringFromSelector(aSelector) UTF8String]);
return [super respondsToSelector:(aSelector)];
}