问题语句:我有一个在Xcode中运行的程序,它有一堆print()语句,可以很好地将输出打印到调试控制台。然而,我希望也能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我,作为调试的一种方式。
SO上找到的解决方案使我可以将输出重定向到文件,但调试控制台输出将丢失。
问:我想要我的蛋糕和吃它。我希望能够将print()语句重定向到调试控制台和文件。
所以我有引用:https://stackoverflow.com/A/46339657/14414215 https://stackoverflow.com/A/553392944/14414215
使用问题中链接的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")