Pearl & API update.
This commit is contained in:
@@ -51,17 +51,21 @@
|
||||
|
||||
#define mpw_log(level, format, ...) \
|
||||
do { \
|
||||
void (*_sendMsg)(id, SEL, CFStringRef, NSInteger, CFStringRef, NSUInteger, CFStringRef) = (void *)objc_msgSend; \
|
||||
char *_msg = NULL; \
|
||||
asprintf( &_msg, format, ##__VA_ARGS__ ); \
|
||||
CFStringRef fileStr = CFStringCreateWithCString( NULL, basename( (char *)__FILE__ ), kCFStringEncodingUTF8 ); \
|
||||
CFStringRef funcStr = CFStringCreateWithCString( NULL, __FUNCTION__, kCFStringEncodingUTF8 ); \
|
||||
CFStringRef msgStr = CFStringCreateWithCString( NULL, _msg, kCFStringEncodingUTF8 ); \
|
||||
_sendMsg( objc_msgSend( (id)objc_getClass( "PearlLogger" ), sel_getUid( "get" ) ), \
|
||||
sel_getUid( "inFile:atLine:fromFunction:withLevel:text:" ), fileStr, __LINE__, funcStr, level, msgStr ); \
|
||||
CFRelease( fileStr ); \
|
||||
CFRelease( funcStr ); \
|
||||
CFRelease( msgStr ); \
|
||||
if (_msg) { \
|
||||
CFStringRef fileStr = CFStringCreateWithCString( NULL, basename( (char *)__FILE__ ), kCFStringEncodingUTF8 ); \
|
||||
CFStringRef funcStr = CFStringCreateWithCString( NULL, __FUNCTION__, kCFStringEncodingUTF8 ); \
|
||||
CFStringRef msgStr = CFStringCreateWithCString( NULL, _msg, kCFStringEncodingUTF8 ); \
|
||||
id (*_getLogger)(id, SEL) = (void *)objc_msgSend; \
|
||||
void (*_sendMsg)(id, SEL, CFStringRef, NSInteger, CFStringRef, NSUInteger, CFStringRef) = (void *)objc_msgSend; \
|
||||
_sendMsg( _getLogger( (id)objc_getClass( "PearlLogger" ), sel_getUid( "get" ) ), \
|
||||
sel_getUid( "inFile:atLine:fromFunction:withLevel:text:" ), fileStr, __LINE__, funcStr, level, msgStr ); \
|
||||
if (fileStr) { CFRelease( fileStr ); } \
|
||||
if (funcStr) { CFRelease( funcStr ); } \
|
||||
if (msgStr) { CFRelease( msgStr ); } \
|
||||
free(_msg); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define trc(format, ...) mpw_log( 0, format, ##__VA_ARGS__ );
|
||||
|
Reference in New Issue
Block a user