отобразить в текстовом виде файл .log из filePath - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь отобразить файл .log в текстовом представлении, но не могу правильно получить доступ к пути к файлу.Когда я делаю это возвращает ноль.Я использую модуль под названием «SwiftyBeaver» для ведения журнала.Вот как выглядит fileURL:

file: ///var/mobile/Containers/Data/Application/5C92E3E6-9E45-4869-9142-AB9E70EE4FCC/Library/Caches/swiftybeaver.log

Это функция, которую я использую, чтобы превратить .log в строку, чтобы я мог отобразить его в textView

private func loadTextWithFileName(_ fileName: String) -> String? {
    guard let path = Bundle.main.path(forResource: fileName, ofType: "log"),
        let contents = try? String(contentsOfFile: path) else {return nil}
    return contents
}

Вот какЯ отображаю текст в textView

self.loggingTextView.text = self.loadTextWithFileName (self.file.logFileURL! .AbsoluteString)

1 Ответ

0 голосов
/ 19 сентября 2019

Метод, который вы используете Bundle.main.path(), в основном для поиска файлов в вашем комплекте.

Но, похоже, ваш log файл будет в вашем каталоге Cache.

Вот как вы можете найти файл в вашем каталоге Cache вашего приложения

private func loadTextWithFileName(_ fileName: String) -> String? {
        if let dir = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first {
            let fileURL = dir.appendingPathComponent(fileName)
            guard let text = try? String(contentsOf: fileURL, encoding: .utf8) else {
                return nil
            }
            return text
        }
        return nil
    }

Вы можете добавить catch блок к вашему try кейсу, чтобы проверить, в чем заключается ошибка, если вы не получите подробности файла журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...