xcode - 在 Xcode 中,有没有办法在调用 NSLog 时禁用调试器控制台中显示的时间戳?

标签 xcode console debugging settings

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/

相关文章:

XCode 4.5 - 向左缩进代码

xcode - 从 Swift 1.2 - 2.0 更新 tableView 代码

c# - gacutil 不被识别为内部或外部命令?

eclipse - 如何在 eclipse 中调试 Node.js 程序(使用 node-eclipse)?

HTML 元素随着页面大小的调整而移动

cocoa - 如何在我的 Cocoa 应用程序中正确嵌入第三方框架?

swift - 在特定部分插入单元格

file - 如何将所有控制台输出保存到 R 中的文件中?

c# - 如何在C#中以编程方式控制VLC?

php - 引用 - 这个错误在 PHP 中意味着什么?