如何将控制台输出打印到文件和控制台

时间:2021-03-07 09:51:09

标签: ios swift debugging

问题说明: 我有一个在 Xcode 中运行的程序,带有一堆 print() 语句,它可以很好地将输出打印到调试控制台。但是,我还希望能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我作为调试的一种方式。

我在 SO 上找到的解决方案使我能够将输出重定向到文件,但会丢失调试控制台输出。

问: 我想要我的蛋糕并把它吃掉。我希望能够将 print() 语句重定向到调试控制台和文件。

所以我参考了: https://stackoverflow.com/a/46339657/14414215 https://stackoverflow.com/a/53392944/14414215

1 个答案:

答案 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")