Xcode 的调试器控制台可以轻松查看我的应用程序使用 NSLog()
发出的任何调试消息,但它始终在其上粘贴时间戳前缀:
2009-08-30 04:54:48.128 MyApp[94652:a0f] some log message
2009-08-30 04:54:50.647 MyApp[94652:a0f] another log message
...
这个前缀我没有用,而且占用了很多空间。我有一种感觉,它被硬编码到苹果的日志系统中,但以防万一有解决方案:
我可以让调试器控制台显示不时间戳前缀的日志消息吗?
像这样的东西就完美了:
some log message
another log message
...
最佳答案
NSLog() 正在执行此操作,而不是调试器控制台。
避免这种情况的最简单方法是根本不使用 NSLog。您可以使用 fprintf(),但这很痛苦,因为它不支持 %@ 格式类型。
我通常为此编写一个函数:
void MyLog(NSString *format, ...) {
va_list args;
va_start(args, format);
NSString *formattedString = [[NSString alloc] initWithFormat: format
arguments: args];
va_end(args);
[[NSFileHandle fileHandleWithStandardOutput]
writeData: [formattedString dataUsingEncoding: NSNEXTSTEPStringEncoding]];
}
显然,修改它以添加换行符或使用更短的前缀等...
(修复了杂散的 ctrl-b)
关于xcode - 在 Xcode 中,有没有办法在调用 NSLog 时禁用调试器控制台中显示的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354728/