出于调试目的,我已将此代码添加到我的.pch
. 虽然我对输出非常满意,但我想改进__FILE__
在DLog
定义中使用时打印文件名(没有完整路径)的方式。
我在用着[[NSString stringWithUTF8String:__FILE__] lastPathComponent]
也许您能建议一种更清洁/更短的方法吗?
#ifdef DEBUG
#define DLog(...) NSLog(@"%@ %d %s %s", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, __PRETTY_FUNCTION__, __FUNCTION__)
#define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
#else
#define DLog(...) do { } while (0)
#ifndef NS_BLOCK_ASSERTIONS
#define NS_BLOCK_ASSERTIONS
#endif
#define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#endif
更新
如果可能的话,我还想摆脱 datetime 和 app name (i.e. 2012-05-30 16:23:29.795 AppName[11746:12203]
。有什么建议吗?