问题描述
XCode的调试器控制台可以轻松查看我的应用程序使用 NSLog()
发送的任何调试消息,但它始终在其上附加时间戳前缀:
XCode's debugger console makes it easy to see any debugging messages my app sends out using NSLog()
, but it always sticks a timestamp prefix on them:
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
...
我有没有使用这个前缀,它占用了很多空间。我有一种感觉,它是硬编码到苹果的日志记录系统,但只要有一个解决方案:
I have no use for this prefix, and it takes up a lot of room. I have a feeling it is hard-coded into Apple's logging system, but just in case there is a solution out there:
我可以调试器控制台显示我记录消息而不使用时间戳前缀?
Can I have the debugger console show me log messages without the timestamp prefix?
这样做将是完美的:
some log message
another log message
...
推荐答案
NSLog()是什么,而不是调试器控制台。
NSLog() is what is doing that, not the debugger console.
避免使用最简单的方法是不使用NSLog。你可以使用fprintf(),但这是一个痛苦,因为它不支持%@格式类型。
The easiest way to avoid it is to not use NSLog at all. You could use fprintf(), but that is a pain in that it doesn't support %@ format types.
我通常为此写一个函数:
I generally write a function for this:
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];
[formattedString release];
}
显然,修改它添加换行符或使用较短的前缀等。 ..
Obviously, modify it to add a newline or use a shorter prefix, etc...
(修正了流氓ctrl-b)
(Fixed the stray ctrl-b)
这篇关于在XCode中,是否有一种方法可以在调用NSLog时禁用调试器控制台中显示的时间戳?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!