问题说明: 我有一个在 Xcode 中运行的程序,带有一堆 print() 语句,它可以很好地将输出打印到调试控制台。但是,我还希望能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我作为调试的一种方式。
我在 SO 上找到的解决方案使我能够将输出重定向到文件,但会丢失调试控制台输出。
问: 我想要我的蛋糕并把它吃掉。我希望能够将 print() 语句重定向到调试控制台和文件。
所以我参考了: https://stackoverflow.com/a/46339657/14414215 https://stackoverflow.com/a/53392944/14414215
答案 0 :(得分:0)
使用问题中的 2 个链接 SO,我设法更改了我的 CSVoutput 函数,如下所示。使用这个,我每次只调用该函数。
import Foundation
struct CSVfuncs {
static func writeLog(_ string: String){
let filename = "Log_DebugLog.txt"
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .allDomainsMask).appendingPathComponent(filename)
let data = "\(string)\n"
do {
print("\(string)") // Print to DebugConsole
try data.appendToURL(fileURL: fileURL) // Redirect to File
}
catch {
print("CSVfuncs writeLog: Could not write data to file")
}
}
}
示例:
CVSFuncs.writeLog("this is printed to Debug Console & File")