中文(挪威语释义): skribent m1 (源自拉丁语 scribere '书写') 作者,尤指散文、论文或日报文章的作者
中文(德语释义): Vielschreiber, Schreiberling (源自拉丁语 scribens (属格: scribentis), scribere = schreiben 的第一分词)
Skribent 是一个易于使用的零配置日志记录器,它仍然可以在某个时候扩展,并且是类型安全的。
Skribent.log(level: .info("This is an info"))
Skribent.log(level: .debug("This is a debug"))
Skribent.log(level: .error("This is an error", AppStoreErrors.appStoreOffline))
Skribent.log(level: .warning("This is a warning"))
如果可能,Skribent 使用 Apple 提供的统一日志记录系统。这意味着所有消息都会被记录到开发者控制台和设备控制台中,并且 error
和 warning
级别的日志会被持久化到数据存储中。这意味着即使应用程序停止运行后,这些日志仍然可以访问。
统一日志记录系统仅适用于在 OSX 10.12、iOS 10.0、watchOS 3.0、tvOS 10.0 或更高版本上运行的应用程序。对于较旧的系统,NSLog
类用于日志记录,它也会记录到开发者控制台和设备控制台。但是这里没有持久化功能。
不鼓励在生产环境中记录到设备控制台,因此可以使用标志禁用控制台日志记录。
Skribent.runInProductionMode = true
尽管处于活动生产模式,日志仍然会传递到插件。
标签是属于同一组的日志集合。标签由名称和前缀定义,它们会显示在日志中。为了整理您的日志以进行调试,或者在生产环境中禁用某些日志,可以忽略标签。
extension Tag {
static var appStore: Tag {
return Tag(name: "App Store", prefix: "💰")
}
}
Skribent.shared.ignore(tag: .appStore)
Skribent.shared.unignore(tag: .appStore)
被忽略标签的日志不会传递到插件。
可以实现插件,这些插件会获取与日志方法相同的传递信息,以及生产模式。
class ExamplePlugin: Plugin {
func log(level: LogLevel, tag: Tag?, file: String, functionName: String, line: Int, production: Bool) {
// log to Crashlytics/Logstash
}
}
let plugin = ExamplePlugin()
Skribent.add(plugin: plugin)
使用 Cocoapods,将以下内容添加到您的 Podfifle
文件中
target 'yourtarget' do
pod Skribent
end
使用 Carthage,将以下内容添加到您的 Cartfile 文件中
github "namics/swift-skribent"