【发布时间】:2009-07-01 17:23:57
【问题描述】:
我在我的应用程序中使用 NSLog。我想摆脱每个字符串的烦人开头:“2009-07-01 21:11:06.508 MyApp[1191:207]”。
有没有办法做到这一点?可能是另一个日志记录功能?
谢谢。
【问题讨论】:
标签: iphone objective-c xcode nslog
我在我的应用程序中使用 NSLog。我想摆脱每个字符串的烦人开头:“2009-07-01 21:11:06.508 MyApp[1191:207]”。
有没有办法做到这一点?可能是另一个日志记录功能?
谢谢。
【问题讨论】:
标签: iphone objective-c xcode nslog
阅读这些:
这是一个名为“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()吗?
【讨论】:
【讨论】: