Skribent 0.0.2

Skribent 0.0.2

Oliver Eisenhut 维护。



Skribent 0.0.2

  • Namics AG

Skribent📜

CircleCI

Norsk: skribent m1 (fra latin av scribere 'skrive') forfatter, særlig av essay og avhandlinger eller artikler i dagspressen

Deutsch: Vielschreiber, Schreiberling (zu lateinisch scribens (Genitiv: scribentis), 1. Partizip von: 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 提供的统一日志系统。这意味着所有消息都会记录到开发者控制台和设备控制台,并且 levels errorwarning 会持久化到数据存储。这意味着即使在 App 停止运行之后,这些日志仍然可以访问。

统一日志系统仅适用于在 OSX 10.12、iOS 10.0、watchOS 3.0、tvOS 10.0 或更新的系统中运行的 App。对于旧系统,使用 NSLog 类进行日志记录,这也会记录到开发者和设备控制台。但是没有持久化功能。

生产模式

在 production 模式中不建议向设备控制台记录,因此可以使用标志来禁用控制台记录。

Skribent.runInProductionMode = true

即使在 active production 模式下,日志仍然会传递给插件。

特性

标签

标签是属于一起的日志分组。标签通过名称和前缀定义,在日志中显示。为了整理日志以便调试或禁用在生产中的某些日志,可以忽略标签。

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

使用CocoaPods,将以下内容添加到您的Podfile文件中

target 'yourtarget' do
    pod Skribent
end

Carthage

使用Carthage,将以下内容添加到您的 Cartfile 文件中

github "namics/swift-skribent"