Glider 是几乎所有场景下的日志记录器! 它的设计理念是:
日志记录和监控是我们作为工程师的基本工作组成部分。
特别是在移动领域(具有非常异构的环境),您经常会发现自己处于需要了解您的软件在生产环境中如何运行的情况下,这一点至关重要。
这就是日志记录的正确工作:记录的数据提供了有价值的信息,这些信息很难以其他方式收集,揭示了意想不到的行为和错误,即使数据被充分匿名化,也可以识别单个用户的操作序列。
我们很乐意制作这个开源软件包,并希望看到像您这样的工程师使用这款软件。
以下是您会喜欢 Glider 的五个理由
创建一个日志记录器很简单。
每个日志记录器都是 Log
类的一个实例;通常,您需要指定一个或多个传输方式(数据存储的位置)。
let logger = Log {
$0.subsystem = "com.my-awesome-app"
$0.category = "ui-events"
$0.level = .info
$0.transports = [ConsoleTransport()]
}
以下日志记录器显示在控制台中收到的消息 - 仅警告或更严重的消息。
// Logs an error (including stack trace)
logger.error?.write("Unexpected error has occurred!",
extra: ["reason": error.localizedDescription, "info": extraInfoDict])
// Logs an event with a set of attached details
logger.info?.write {
$0.message = "User tapped Buy button"
$0.object = encodableProduct
$0.extra = ["price": price, "currency": currency]
$0.tags = ["productId", pID]
}
这是官方支持的传输服务列表。
第三方传输方式可以在以下单独的存储库中找到
单独的传输能够自动捕获每个网络请求并转发到其他传输方式
Glider 在源代码级别进行了完整的文档化。 您可以在 XCode 中免费获得带有文档的自动完成功能;此外,您可以从这里阅读由 Swift Package Index 项目自动生成的完整 Apple 的 DoCC 文档
以下手册将指导您如何在项目中使用 Glider。
Glider 为 Glider Core Logger 和 /Tests
文件夹下的第三方软件包提供了一套广泛的单元测试。
此外,整个软件包由 SwiftLint 提供支持,以提高代码质量。
如果您想加入这个项目,我们正在维护一个我们希望在以下 Glider 版本中实现的新功能列表。请打开一个 issue 并与我们讨论其中一个!
Glider 可以安装在任何支持以下功能的平台上
注意:以下传输方式需要更新的 OS 版本(iOS 13+、tvOS 13+ 和 macOS 10.15+):RemoteTransportServer、RemoteTransportServerClient
我们首选的安装方法是 SPM,但我们仍然支持 CocoaPods。
Swift Package Manager 是一种用于自动化 Swift 代码分发的工具,并且已集成到 swift 编译器中。 它还处于早期开发阶段,但 Glider 确实支持在支持的平台上使用它。
设置好 Swift 包后,将 Glider 添加为依赖项就像将其添加到 Package.swift
的依赖项值一样容易。
dependencies: [
.package(url: "https://github.com/immobiliare/Glider.git")
]
Manifest 还包括其他传输方式的第三方软件包,例如 ELK 或 Sentry。
Glider 核心 SDK 是 Glider
包。
CocoaPods 是 Cocoa 项目的依赖项管理器。
要将 Glider 集成到您的项目中,请在您的 Podfile 中指定它
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'GliderLogger'
Glider 由 ImmobiliareLabs (Immobiliare.it 的技术部门) 令人惊叹的移动团队创建。 我们目前正在将 Glider 用于登录到我们所有的产品中。
如果您在您的应用中使用 Glider,请 给我们留言
由 ImmobiliareLabs & 贡献者 用 ❤️ 制作
我们希望您能为 Glider 做出贡献!
如果您对使用 Glider 有疑问、错误和增强功能,请随时通过打开 GitHub Issue 与我们联系。