LogIt 0.2.0

LogIt 0.2.0

Jake Prickett 维护。



LogIt 0.2.0

  • Jake Prickett


撰写者: Jake Prickett🖋


Build Status Swift 5
CocoaPods Carthage Swift Package Manager
Platform LICENSE

电梯简报

自从引入了Swift 日志框架以来,对于日常 iOS 工程师来说,似乎缺少了一个至关重要的方面:能够在应用程序《之内》查看日志的能力。无需手动连接设备到计算机或将设备带入。此仓库包含两个框架:一个纯 Swift 日志库,以及用于查看存储和生成日志的配套用户界面库。

这个库受到了苹果 Swift 日志框架的启发。

LogIt

LogIt 是一个专为 iOS & macOS 应用程序编写的轻量级 Swift 日志库,它有效地将日志写入并存储在设备上。通过这样做,它可以在不需要将设备连接到计算机的情况下,从代码中访问这些日志。

LogItUI

LogItUI,是 LogIt 的配套库,是一个支持显示在 iOS 应用程序中记录的日志的库。 (注意:macOS UI 支持是功能路线图的一部分) 这还满足不了您的需求?LogIt 同时还提供了构建围绕日志的自定义 UI 的能力,以适应更多定制用例。

基本用法

LogIt

配置

使用LogIt的第一步是正确配置您的记录器。此值告诉库将日志文件存储在哪里,这是必填步骤。

注意:此操作通常在您的AppDelegateSceneDelegate中完成。

// Custom specified identifier
LogIt.configure(with: .custom('custom.log.identifier'))

// Pulls the bundleId if available
LogIt.configure(with: .bundleId)

// Default value: "LogIt.log"
LogIt.configure(with: .default)

如果您需要,可以使用LogIt.logFileURL访问此文件路径。

为了正确记录,必须使用以下方法明确启用此框架:

// Enables logging
LogIt.enableLogging()

// Disables logging
LogIt.disableLogging()
日志级别

以下日志级别受支持

日志级别
错误 .error
警告 .warning
信息性 .info

如果您只想记录高于一定级别的消息

// Will only display logs that are more severe or equal to `.warning`
// (All `.warning` logs and `.error` logs currently.)
LogIt.setLogLevel(.warning)

这可能在某些情况下很有用,例如在App Store发布时,可能不希望有详细的记录。

记录

现在到有趣的记录部分。每个日志级别都有一个相关联的方法。此方法接收一个字符串。

LogIt.info("Informational Log!")

LogIt.warning("Warning Log!")

LogIt.error("Error Log!")

是的,就这么简单!

检索日志

可以通过调用 LogIt.getLogs() 方法来检索日志。如果在获取过程中发生错误,该方法将抛出一个描述性错误,可以进行处理。

如果数据已损坏或文件不再存储在磁盘上,此方法还将清空日志文件。

清空日志

可以通过调用 LogIt.clearLogs() 方法来清空日志。 如果在清空过程中发生错误,该方法将抛出一个描述性错误。

LogItUI

LogItUI 的主要组件是 LogItViewController。它负责检索、显示和过滤日志。

查看演示
@objc
private func viewLogs() {
  let vc = LogItViewController()
  navigationController?.present(vc, animated: true, completion: nil)
}

安装

请参考以下说明进行安装 LogIt 和 LogItUI。

要求

  • iOS 12.0+
  • macOS 10.12+
  • Swift 5.0+

CocoaPods

要安装它,只需将以下行添加到您的 Podfile 文件中

# To consume LogIt
pod 'LogIt'
# To consume LogItUI
pod 'LogItUI'

Carthage

要安装它,只需将以下行添加到您的 Cartfile 文件中

github "Jake-Prickett/LogIt"

Swift Package Manager

要安装它,只需将软件包作为依赖项添加到

Package.swift:

dependencies: [
  .package(url: "https://github.com/Jake-Prickett/LogIt.git", from: "X.Y.Z"),
]

特性路线图

  • 确定接口/配置步骤
  • 随附可定制的 LogItViewController
  • 增加配置指定标识符以便于日志文件(在单个设备上处理多个记录器)的能力
  • 可以通过 LogItViewController 导出日志(初始为通过电子邮件)
  • 支持 LogItViewController 的暗黑模式
  • LogItLogItUI 模块进行分离(不需要用户同时使用除非他们需要)
  • 为拉取请求添加 CI 运行
  • 添加 SwiftPM 和 CocoaPod 支持
  • 单元测试覆盖率
  • 文档(徽章、描述、功能、基本用法、依赖项支持)
  • 代码文档
  • 设置所需的最小日志级别
  • 在 VC 中行的背景颜色替代选项
  • 引入线程安全的读写
  • 将日志记录到可以配置大小的缓冲区中,当达到限制时写入。(与每次写入日志相比,成本较高)
  • 添加可以随着日志一起传递的元数据
  • 在选择特定日志时,查看该日志的更多详细信息
  • 日志的搜索功能
  • 高级用法:控制器外不够?为用户提供原始日志文件和使用说明。

如果您发现问题或有功能请求,请随时通过相应的模板打开问题。想自己修复并想要参与?请这么做!