本文共 1999 字,大约阅读时间需要 6 分钟。
转自:
引入
在做j2ee开发的时候,会用到log4j或其它类似工具去记录程序运行日志,以便调试时或在程序运行出错后,通过日志查询出错原因。那在IOS开发中是否有类似的方式来记录日志呢?下面将简单的说明: 说明 在Objective-c开发程序的时候,有专门的日志操作类NSLog,它将指定的输出,输出到(stderr),我们可以利用Xcode的日志输出窗口,那么既然是要记录到具体日志文件,我们就想输出日志写入到具体的日志文件即可。 代码 1、 宏定义(下面是我在程序中常用到的日志宏,用DEBUG开关管理, 也就是说只有在DEBUG模式下才让日志输出 :) #ifdef DEBUG # define LOG(fmt, ...) do { \ NSString* file = [[NSString alloc] initWithFormat:@"%s", __FILE__]; \ NSLog((@"%@(%d) " fmt), [file lastPathComponent], __LINE__, ##__VA_ARGS__); \ [file release]; \ } while(0) # define LOG_METHOD NSLog(@"%s", __func__) # define LOG_CMETHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) # define COUNT(p) NSLog(@"%s(%d): count = %d\n", __func__, __LINE__, [p retainCount]); # define LOG_TRACE(x) do {printf x; putchar('\n'); fflush(stdout);} while (0) #else # define LOG(...) # define LOG_METHOD # define LOG_CMETHOD # define COUNT(p) # define LOG_TRACE(x) #endif 可以看到,除了标准的用户定义输出外,我还加入了许多有用的信息, 比如源程序文件位置,行号,类名,函数名等。具体的应用可以在具体的开发过程中添加、删除。 2、 应用: - (void)redirectNSLogToDocumentF转载地址:http://sneji.baihongyu.com/