我在我的应用程序中使用 NSLog。我想摆脱每个字符串的烦人开头:“2009-07-01 21:11:06.508 MyApp[1191:207]”。
有没有办法这样做?可能是另一个日志记录功能?
谢谢。
我在我的应用程序中使用 NSLog。我想摆脱每个字符串的烦人开头:“2009-07-01 21:11:06.508 MyApp[1191:207]”。
有没有办法这样做?可能是另一个日志记录功能?
谢谢。
阅读这些:
这是一个名为“QuietLog”的 Github 项目,最初来自我们的 CocoaHeads 站点,它解释了如何创建一个QuietLog
执行您所描述的功能的函数。它还展示了如何将 QuietLog 包装到一个名为 LocationLog 的宏中,以便它会打印出您获得日志语句的文件名和行号。我在我的所有项目中都使用它,并且不再丢失杂散的“NSLog”语句。
这个预处理器宏很容易实现,您不必更改任何当前NSLog
语句:
#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
它完全像NSLog
在消息之前没有所有额外的东西一样工作。
我最初在另一个 SO question 上找到了这个,但现在找不到了。
我喜欢能够将 Objective-C 对象用于格式字符串和参数,因此我重新编写了 NSLog() 并将其添加到我的实用程序中。
+ (void)myLog:(NSString *)formatString, ...
{
va_list args;
va_start(args, formatString);
NSString* output = [[NSString alloc] initWithFormat:formatString arguments:args];
fprintf(stderr, "%s\n", [output UTF8String]);
[output release];
va_end(args);
}
你试过CFShow()吗?