Я пытаюсь получить все журналы консоли в файл.
Я нашел такие сообщения. Я тестировал это: содержимое не отображается с помощью 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 файла, чтобы получить все журналы.
Единственный недостаток в том, что у меня нет способа получить правильный порядок
Комментариев нет:
Отправить комментарий