获取所有控制台内容到一个文件中
Get all console content into a file
我正在尝试将所有控制台日志放入一个文件中。
我找到了像 这样的帖子。我一直在测试这个:NSLog 没有显示内容(打印显示)但是没有数据写入文件,NSLog 和打印的都没有。
当应用程序关闭时,我关闭文件。
我做了如下操作:
var file: UnsafeMutablePointer<FILE>?
func logAll() {
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let filename = "/\(Date().timeIntervalSinceReferenceDate).log"
let logFilePath = paths[0].appending(filename)
file = freopen(logFilePath.cString(using: .ascii), "a+", stderr)
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
logAll()
/// rest of the code
}
func applicationWillTerminate(_ application: UIApplication) {
if let file = file {
fclose(file)
}
}
我在这里错过了什么?
好的,我有这个。
有 3 个标准文件:stdin
、stdout
和 stderr
因为我只是尝试打印,所以我没有看到它,但常规打印存储在 stdout
文件中。后来,在一个有更多库的项目中尝试,似乎(例如 firebase)日志存储在 stderr
.
因此,我不必只打开一个文件,而只需打开 3 个文件即可获取所有日志。
现在唯一的问题是我没有办法获得正确的订单
我正在尝试将所有控制台日志放入一个文件中。
我找到了像
当应用程序关闭时,我关闭文件。
我做了如下操作:
var file: UnsafeMutablePointer<FILE>?
func logAll() {
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let filename = "/\(Date().timeIntervalSinceReferenceDate).log"
let logFilePath = paths[0].appending(filename)
file = freopen(logFilePath.cString(using: .ascii), "a+", stderr)
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
logAll()
/// rest of the code
}
func applicationWillTerminate(_ application: UIApplication) {
if let file = file {
fclose(file)
}
}
我在这里错过了什么?
好的,我有这个。
有 3 个标准文件:stdin
、stdout
和 stderr
因为我只是尝试打印,所以我没有看到它,但常规打印存储在 stdout
文件中。后来,在一个有更多库的项目中尝试,似乎(例如 firebase)日志存储在 stderr
.
因此,我不必只打开一个文件,而只需打开 3 个文件即可获取所有日志。
现在唯一的问题是我没有办法获得正确的订单