在Xcode中的调试版本中,无论我是使用模拟器还是实际设备,NSLog,printf,fprintf assert和NSAssert语句都出现在控制台上
如果我现在在设备上运行发布版本(比如说我发送了一个测试版本并在我的iPhone上加了大量的内容;这将是一个发布版本),其中哪些(如果有的话)被记录下来了?
我该如何检索日志?
NSLog实际上是否在发布版本上输出了什么?决定因素是什么?无论是写入stdout还是stderr?只有stderr写入设备日志?这是否意味着我必须使用fprintf?是否已将任何内容写入设备日志?甚至有这样的事情吗?如果是这样,如何捡起来?
有人可以澄清这种情况吗?
是否可以将每个NSLog不仅写入控制台,还可以写入文件?我想无需更换准备这个NSLog成someExternalFunctionForLogging.
替换所有人将是真正的问题NSLog.也许有可能从控制台解析数据或捕获消息?
晚上,是否可以将所有打印和调试打印保存在一个文件中?
即使不是从 Xcode 启动,我也想拥有我的应用程序所做操作的日志。
我正在考虑覆盖 print 和 debugPrint 方法并将输入写入文件。
谢谢
我想将每个 print() 内容写入 Swift 3.0 中的文本文件中。它在 Objective-C 中运行良好,但在 Swift 3.0 中不起作用。我正在使用如下代码,
func redirectLogToDocuments() {
let docDirectory: NSString = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as NSString
let logpath = docDirectory.appendingPathComponent("Logfile.txt")
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdin)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdout)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stderr)
}
Run Code Online (Sandbox Code Playgroud)
请帮我。