LogKit 是一个构建简单、执行高效、发布安全、可扩展性强的日志框架。它使用纯 Swift 编写,适用于 OS X、iOS、tvOS 和 watchOS 应用的日志记录。对于寻求比 print()
更强大功能的开发者,LogKit 可以瞬间上手,并准备好将日志输出到控制台、一个文件、一个 HTTP 服务,或者全部三种。需要记录到其他地方?定义自己的端点也很容易。
此读取文件仅包含一些关于 LogKit 的入门提示。要了解所有其他内容,请查看 项目网站。
安装 LogKit 有几种方法。下面有一些提示,但更多详细信息请参阅 安装指南。
注意:由于某种原因,CocoaPods 从他们的网站上显示的此读取文件中删除了 CocoaPods 和 Carthage 的安装说明。如果看不到这些安装选项,请访问 安装指南。
支持iOS 8+,OS X 10.9+,tvOS 9+,watchOS 2+
将LogKit.xcodeproj
包含到你的项目中(位于项目根以下二级,作为子项目)。选择你的目标,在“通用”选项卡中将LogKit添加为嵌入式二进制文件。为你的目标选择适当的LogKit框架。确保选择框架,而不是测试。
支持iOS 7+,OS X 10.9+,tvOS 9+,watchOS 2+
要将LogKit集成到目标iOS 7的项目中,只能通过集成LogKit源文件的方式。当使用此安装方法时,请跳过
import LogKit
。
将Sources
目录中的所有.swift
文件添加到你的项目中。安装无需执行其他步骤。
如果你以前使用过LogKit 1,那么你将熟悉LogKit 2的大部分内容。但是,许多对象已更新了名称和初始化器。请参阅变更日志和阅读迁移指南来更新你的代码以兼容LogKit 2。
LogKit很容易入门。所有东西都附带方便的初始化器,只需要提供最少量的参数(通常是无需任何参数)并提供了合理的默认值。快速开始,然后你可以按需稍后进行定制。
使用下面的快速入门教程现在开始,然后查看使用指南了解LogKit能做什么的所有细节。
在您的AppDelegate.swift
文件顶部附近,添加以下两行:
import LogKit
let log = LXLogger()
这将导入LogKit框架并创建一个全局的Logger实例。此Logger将使用标准控制台末端以默认格式记录所有消息进行初始化。鉴于Logger实例是在全局范围内创建的,因此你应该只创建一次(在AppDelegate.swift
中创建是最佳地点)。
现在你可以在项目的任何地方进行日志记录
log.info("Hello Internet!")
// 2015-06-25 07:36:01.638000 [INFO] applicationDidFinishLaunching <AppDelegate.swift:23> Hello Internet!
现在你可以进行日志记录了!您可以使用debug
、info
、notice
、warning
、error
和critical
的Logger方法。
如果你还想将日志记录到文件和控制台,并且你想要文件只接收notice
级别以上的日志条目,你可以在设置你的Logger时这样操作:
import LogKit
let log = LXLogger(endpoints: [
LXConsoleEndpoint(),
LXFileEndpoint(
fileURL: NSURL(string: /* Path to your log file */),
minimumPriorityLevel: .Notice
),
])
你可以添加和配置任何数量的末端,例如包含的文件和HTTP服务末端。你也可以完全自定义写入每个末端的日志条目的格式。
每个末端都有一个名为dateFormatter
的属性,它控制日志条目的dateTime
属性将如何格式化。它接受一个LXDateFormatter
实例,通常在初始化时设置。
let log = LXLogger(endpoints: [
LXConsoleEndpoint(
dateFormatter = LXDateFormatter(formatString: "HH:mm:ss.SSS")
),
])
每个末端还有一个名为entryFormatter
的属性,它控制日志条目将被转换成字符串以进行输出。它接受一个LXEntryFormatter
实例,通常也在初始化时设置。
let log = LXLogger(endpoints: [
LXConsoleEndpoint(
entryFormatter = LXEntryFormatter({ entry in
return "\(entry.dateTime) [\(entry.level.uppercaseString)] \(entry.message)"
})
),
])
有关更多详细信息,请参阅日志条目格式化文档,包括可用的日志条目属性和LXEntryFormatter
。
LogKit 欢迎贡献!请参阅 CONTRIBUTING.md 获取更多信息。
LogKit 基于宽松的 ISC 许可协议。