iOS Swift:将 NSLog 调用路由到文件

iOS Swift : routing NSLog calls to file

提问人:Stéphan Bordera 提问时间:9/22/2021 更新时间:9/22/2021 访问量:149

问:

是否可以轻松地将来自我们的 iOS 应用程序和私有框架的所有 NSLog 调用路由到一个文件中。

喜欢将 NSLog 重新定义为其他东西吗?

ios swift cocoalumberjack

评论

1赞 JeremyP 9/22/2021
我找到了一个答案,但写在目标 C 中。它将作为文件重新打开。同样的技术在 Swift 中也有效。stackoverflow.com/questions/3184235/......stderr
0赞 JeremyP 9/22/2021
我最初关闭了这个问题,但后来改变了主意,因为还需要做一些工作才能将代码翻译成 Swift。

答:

0赞 Krzysio 9/22/2021 #1

我把这个答案翻译给了 Swift。在 AppDelegate 中调用此函数。didFinishLaunchingWithOptions

func redirectConsoleLogToDocumentFolder() {
        let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).map(\.path)
        let documentsDirectory = paths[0]
        let logPath = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("console.log").path
        freopen(logPath, "a+", stderr)
    }

这是 iOS 设备上文件的路径:console.log/var/mobile/Containers/Data/Application/<your-app>/Documents/console.log