Swift:摆脱时间戳 NSLog()

Posted

技术标签:

【中文标题】Swift:摆脱时间戳 NSLog()【英文标题】:Swift: Get rid of timestamp NSLog() 【发布时间】:2015-03-05 11:24:33 【问题描述】:

是否可以去掉NSLog() 中的时间戳? 我想保留 NSLog 功能但有更简单的输出。 println() 不是选项,因为线程的行为

【问题讨论】:

不回答你的问题,但你为什么要保留 NSLog?如果您使用 NSLogs 将您的应用程序推送到商店,您将得到 ERROR 记录,如果您想保留它,您将自己使用它并且可以忽略它。 我只想根据需要创建日志。时间戳大多是不需要的 【参考方案1】:

基于println部署你自己的日志,它使用GCD来确保它在主线程上执行,例如

func log(string: String)

    dispatch_async(dispatch_get_main_queue())  println(string) 
 

您也可以使用编译器标志禁用此功能以进行发布,例如见Disabling NSLog For Production In Swift Project。

【讨论】:

我 NSLog 只是在主线程上?!不也是同步的吗? AFAIK NSLog 仅确保输出以线程安全的方式写入stderr(这是与println 的另一个区别)。或者你所说的同步是什么意思?如果它会阻塞调用者直到它完成,那么使用dispatch_sync

以上是关于Swift:摆脱时间戳 NSLog()的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 中,有没有办法在调用 NSLog 时禁用调试器控制台中出现的时间戳?

如何在从 csv 附加日期时间时摆脱单词“时间戳”和元组?

Swift 4:Firebase 时间戳

Swift - 处理 Firebase 时间戳

将 Firebase Firestore 时间戳转换为日期(Swift)?

时间戳方程 - Firebase 数据库 + Swift