最近我们遇到了一种情况,我们希望从应用程序中看到用户在其设备上的调试信息.所以,我正在寻找的是一种在设备上查找日志的方法,将其粘贴为邮件上的内联文本并允许用户发送它.
有任何想法吗?以下是问题:1)在设备上查找调试日志2)打开文件并将文件内容作为内联文本附加到邮件中.3)允许用户在下次应用启动时通过电子邮件发送..
谢谢,
将日志语句写入iPhone应用程序中的文件或数据库的最佳方法是什么?
理想情况下,NSLog()输出可以使用freopen()重定向到文件,但我看到几个报告它不起作用.有没有人已经这样做或有任何想法如何最好地做到这一点?
谢谢!
晚上,是否可以将所有打印和调试打印保存在一个文件中?
即使不是从 Xcode 启动,我也想拥有我的应用程序所做操作的日志。
我正在考虑覆盖 print 和 debugPrint 方法并将输入写入文件。
谢谢
我有这个奇怪的问题。当我从 Xcode(甚至在设备上)运行应用程序时,它运行良好,没有任何崩溃。但是当我在没有 Xcode 的设备上运行它时,当我从其中一个 viewController 导航回来时它崩溃了。我无法获得崩溃的原因,因为我无法使用日志。以前有人经历过吗?
我试图将NSLog发送到在模拟器,IOS 10.2上运行的Swift 3中的文件,并且没有生成任何内容
func redirectConsoleLogToDocumentFolder() {
let file = "file.txt"
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
let logPath = dir.appendingPathComponent(file).absoluteString
print("log:\(logPath)")
freopen(logPath, "a+", stderr)
}
NSLog("print nslog")
}
Run Code Online (Sandbox Code Playgroud)
产量
~/Library/Developer/CoreSimulator/Devices/A7B717-3ED8-493A-9778-C594AF9FF446/data/Containers/Data/Application/B0386-64BB-46EB-9BF2-65209FC748CD/Documents/file.txt
Run Code Online (Sandbox Code Playgroud)
唯一的影响是输出不再打印到控制台.
我试过了
freopen(logPath.cString(using: .utf8), "a+", stderr)
Run Code Online (Sandbox Code Playgroud)
以及其他各种组合
使用我收到的路径写入文件没有问题,所以没有任何问题
我希望在路径中看到一个名为file.txt的文件,并且该文件包含"print nslog".我尝试先创建文件但没有成功.