cocoa下的扩展日志输出例程

来源:互联网 发布:数组和指针的区别 编辑:程序博客网 时间:2024/04/30 13:31

根据代码代码稍作改动。


// 文件 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




原创粉丝点击