在文本中显示来自 filePath 的 .log 文件
Posted
技术标签:
【中文标题】在文本中显示来自 filePath 的 .log 文件【英文标题】:display in a textView a .log file from a filePath 【发布时间】:2019-09-18 22:26:43 【问题描述】:我正在尝试在文本视图中显示 .log 文件,但似乎无法正确访问文件路径。当我这样做时,它返回零。我正在使用一个名为“SwiftyBeaver”的 pod 来进行日志记录。这是 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)
【问题讨论】:
因为您将日志文件的完整 URL(不是文件名)放到了您的函数中。我认为您应该将 tie loadTextWithFileName 函数更改为 loadTextFromPath 【参考方案1】:您使用Bundle.main.path()
的方法主要是搜索您的Bundle中的文件。
但您的log
文件似乎将在您的缓存目录中。
这是在应用的缓存目录中查找文件的方法
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
案例中以检查错误是什么,以防您无法获得日志文件详细信息。
【讨论】:
以上是关于在文本中显示来自 filePath 的 .log 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django 模板中的一行中显示来自 db 的输出文本
如何在 div 框中显示来自 javascript innerhtml 的文本输出,而不会导致文本溢出并且具有 html/css 样式