根据代码代码稍作改动。
// 文件 QQLog.h
#import <Foundation/Foundation.h>
#define QQ_DEBUG
@interface QQLog : NSObject {
}
+ (void)file:(char*)sourceFile function:(char*)functionName lineNumber:(int)lineNumber format:(NSString*)format,...;
#define QQLog(args, ...) [UZLog file:__FILE__ function: (char *)__FUNCTION__ lineNumber:__LINE__ format:(args),##__VA_ARGS__]
@end
// 文件QQLog.m
#import "QQLog.h"
@implementation QQLog
+ (void)file:(char *)sourceFile function:(char *)functionName lineNumber:(int)lineNumber format:(NSString*)format, ... {
NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc]init];
va_list ap;
NSString *print, *file, *function;
va_start(ap,format);
file = [[NSStringalloc]initWithBytes: sourceFilelength:strlen(sourceFile) encoding:NSUTF8StringEncoding];
function = [NSString stringWithCString: functionName];
print = [[NSString alloc] initWithFormat: format arguments: ap];
va_end(ap);
#ifdef QQ_DEBUG
NSLog(@"%@:%d %@; %@", [filelastPathComponent], lineNumber, function, print);
#endif
[print release];
[file release];
[pool release];
}
@end
本文介绍了一个Objective-C中用于日志记录的简单实现。通过定义宏和接口,该实现允许开发者轻松地在代码中添加日志记录功能,并且可以根据不同的调试级别控制日志输出。文章提供了完整的源代码,包括头文件和实现文件。
4

被折叠的 条评论
为什么被折叠?



