我正在尝试在textview中显示.log文件,但似乎无法正确访问文件路径。 当我这样做时,它返回nil。 我正在使用名为“ SwiftyBeaver”的吊舱进行日志记录。 这是fileURL的样子:

文件:///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

您使用Bundle.main.path()方法主要是在Bundle中搜索文件。

但是似乎您的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
    }

您可以在try案例中添加一个catch块,以检查错误是什么,以防万一您没有获取日志文件的详细信息。

  ask by SwiftyJD translate from so

未解决问题?本站智能推荐:

1回复

从Mac读取iPhone日志文件内容

如何从Mac读取iPhone日志文件内容? 我想从Macbook中读取iPhone中的/Library/Caches/swiftybeaver.log 。 文件日志由SwiftyBeaver生成
1回复

来自部署在设备上的应用程序的 iOS os.log

我正在使用新的os.log东西登录我的应用程序,如下所示: 当我从 Xcode 调试应用程序时,日志按预期显示在Console.app中。 但是是否有可能以某种方式从部署在设备上的应用程序实例中检索记录的字符串? 我正在“现场”测试我的应用程序,远离笔记本电脑,并希望将收集的日志转储到文本文件中
1回复

os_log:Console.app 和“日志流”中整数的意外值

代码(斯威夫特 3): Xcode 8 (调试区域控制台): 2016-10-01 00:38:55.903298 AUHost[82455:1512026] State changed: from 1 to 2 终端(日志流): 2016-10-01 00:38:54.880763+0
1回复

什么是os.log?

我正在阅读一些关于如何构建简单应用程序的Swift教程,因为我刚开始编写代码。 我想让我的应用程序iOS 9兼容,因为我有一台iPad 3.但是,所有os.log语句都在Xcode中生成一个错误,它告诉我在任何if #avaliable语句之前添加if #avaliable os.log语句。
1回复

你如何从 Swift 向 os_log 传递错误?

我正在尝试从 catch 块记录错误。 文件说明如下: 要格式化日志消息,请使用标准 NSString 或 printf 格式字符串 除了标准格式字符串说明符(例如 %@ 和 %d)之外,日志记录系统还通过以 %{value_type}d 格式内联表示值类型来支持值的自定义解码。 此外,说明
6回复

在设备控制台中查看 os_log 消息

我正在尝试通过统一日志记录 (os_log) 退出我的应用程序 下面是日志的初始化: 这是我如何使用它: 正常调试应用程序时,日志正确显示在控制台输出上,但是当我查看设备控制台(显示在“设备和模拟器”窗口中)时,我根本看不到它们。 这篇文章说你应该配置系统以启用调试日志使用 但这似乎并
2回复

为什么包装 os_log() 会导致无法正确记录双打?

考虑以下示例: 如果我创建一个新的OSLogWrapper实例并调用testWrapper() 我在 Xcode 控制台中得到以下输出: 我已经检查了所有我能想到的东西,我无法弄清楚这里出了什么问题。 查看文档并没有产生任何有用的东西。
3回复

如何从 iPad/iPhone 检索使用 os_log 记录的消息?

我在 Swift 中使用新的统一日志 API。 所以我创建了一个记录器并使用它如下: 如果 iOS 设备与 Mac 断开连接,我如何检索记录的消息? 我知道当设备连接到 Mac 时,新的控制台应用程序会显示记录的消息。 但是,我想检索设备与计算机断开连接时记录的消息。 我怎样才能做到这一点?