star 这个 github 仓库以保持更新。

TraceLog 许可证:Apache 2.0

平台:iOS | macOS | watchOS | tvOS | Linux Swift 5.0 版本 构建状态   Codecov

简介

TraceLog 是一个高度可配置、灵活、便携且易于使用的调试日志系统,适用于在 Linux、macOS、iOS、watchOS 和 tvOS 上运行的 Swift 和 Objective-C 应用程序。

TraceLog 设计理念

  1. 通用性:使用 TraceLog,您不会被锁定在一种类型的日志系统中。实际上,您可以选择组合使用多个日志写入器,以写入不同的端点和系统。
  2. 灵活性:使用 TraceLog,您可以在运行时动态或在编译时静态地过滤消息。选择适合您特定用例的写入器和过滤器的任意组合。编写您自己的自定义 Writer 以插入 TraceLog 中,以满足自定义用例。
  3. 便携性:在撰写本文时,TraceLog 是为数不多的旨在在所有 Swift 支持的平台(Linux、macOS、iOS、tvOS 和 watchOS)上运行,并可在多种语言(Swift 和 Objective-C)中使用的日志系统之一。
  4. 轻量级:TraceLog 的占用空间很小且高效。它的设计目标是在资源方面尽可能高效,并在用例需要时进行自我优化。
  5. 易于使用:TraceLog 可以开箱即用,无需 任何设置或特殊依赖项。这是设计的一部分,我们多年来一直努力保持这一点。您只需链接到它,就可以开始向您的应用程序添加 log 语句,并在任何平台上获得有用的输出。

特性

文档

快速入门指南

TraceLog 开箱即用,非常简单。虽然 TraceLog 是高度可配置的,但要开始使用,您只需将 pod 添加到您的项目中,将 TraceLog 导入到需要日志记录的文件中,然后在您需要的地方开始添加日志语句。TraceLog 会自行初始化并为您完成所有其他操作。

将 TraceLog 添加到您的项目

在您的 Podfile 中添加 TraceLog。

    target 'MyApp'

    pod "TraceLog", '~>5.0'

如果您有混合的 Swift 和 Objective-C 代码,您必须指定子规范以启用 Objective-C,如下所示

    target 'MyApp'

    pod "TraceLog", '~>5.0'
    pod "TraceLog/ObjC", '~>5.0'

导入 TraceLog 并开始日志记录

将 TraceLog 导入到您的文件中并开始日志记录。

    import TraceLog

    struct MyStruct {

        func doSomething() {

            logInfo { "A simple TraceLog Test message" }
        }
    }

日志函数

TraceLog 具有以下主要日志记录函数,用于记录各种级别的信息。这些函数的输出可以通过运行时环境变量或在应用程序启动时通过 TraceLog.configure() 函数以编程方式进行控制。

    logError  (tag: String?, message: @escaping () -> String)
    logWarning(tag: String?, message: @escaping () -> String)
    logInfo   (tag: String?, message: @escaping () -> String)
    logTrace  (tag: String?, level: UInt, message: @escaping () -> String)
    logTrace  (level: UInt, @escaping message: () -> String)

注意:为了简洁起见,省略了隐藏参数和默认值。

基本配置

虽然不是严格要求,但在启动时调用 TraceLog.configure() 命令将允许 TraceLog 读取环境以获取配置信息。

只需在启动代码中尽早调用 configure 且不带任何参数(最好在调用任何日志语句之前)。

    TraceLog.configure()

有关完整的文档集,包括用户指南、100% 文档化的 API 参考和更多示例,请参阅 https://tonystone.io/tracelog

运行时开销

Swift 实现旨在利用 Swift 编译器优化,并且在启用优化 (-O) 并定义 TRACELOG_DISABLED 时,不会产生任何开销。

Objective-C 实现旨在利用预处理器,并且在定义 TRACELOG_DISABLED 的情况下编译时,不会在应用程序中产生任何开销。

对于 XCode,可以在项目目标中设置 TRACELOG_DISABLED。对于 Swift Package Manager,请将 swiftc 指令传递给 swift build,如以下示例所示。

swift build -Xswiftc -DTRACELOG_DISABLED

最低要求

构建环境

平台 版本 Swift Swift 构建 Xcode
Linux Ubuntu 14.04、16.04、16.10 5.0
OSX 10.13 5.0 Xcode 10.x

最低运行时版本

iOS OS X tvOS watchOS Linux
9.0 10.13 9.0 2.0 Ubuntu 14.04、16.04、16.10

注意

要在 Linux 上构建和运行,我们有一个预配置的 Vagrant 文件,位于 https://github.com/tonystone/vagrant-swift

请参阅 README 获取说明。

安装 (Swift Package Manager)

TraceLog 现在支持通过 Swift Package Manager 在所有 Apple OS 变体以及 Linux 上进行依赖项管理。

有关更多信息,请参阅 Swift Package Manager

安装 (CocoaPods)

TraceLog 可通过 CocoaPods 获得。请参阅 快速入门指南,了解如何通过 CocoaPods 安装。

有关 CocoaPods 本身的更多信息,请参阅 “Using CocoaPods” 指南。

作者

Tony Stone (https://github.com/tonystone)

许可证

TraceLog 在 Apache License, Version 2.0 下发布。