速记员 1.0.0

stenographer 1.0.0

Payson Wallach 维护。



  • paysonwallach

速记员

速记员是一个构建于简单启动、高效执行、安全发布代码和灵活扩展的日志框架。它用纯 Swift 编写,适用于 macOS、iOS、tvOS 和 watchOS 应用程序的日志。对于寻求比 print() 更强大功能的开发者,速记员只需要一点时间就可以开始使用,并准备将日志记录在控制台、文件、HTTP 服务或所有三者中。需要记录到其他位置?定义自己的端点也很简单。

速记员是 LogKit 的分支。

Carthage compatible

内容

功能

  • 简单设置
  • 详细文档[文档]
  • 内置控制台、文件和 HTTP [端点][endpoints]
  • 每个端点优先级过滤
  • 每个端点的完整日志条目 [格式定制][formatting]
  • 通过简单协议遵循定义自定义端点

需求

  • 针对 macOS 10.9+、iOS 7+、tvOS 9+ 或 watchOS 2+ 的项目
  • Xcode 7.3 和 Swift 2.2

安装

安装 Stenographer 有几种方法。下面提供一些提示,但更多详细信息请参阅[安装指南][install]。

注意:由于某种原因,CocoaPods 会从他们网站上显示的此 readme 中删除关于 CocoaPods 和 Carthage 的安装说明。如果您看不到这些安装选项,请访问[安装指南][install]。

CocoaPods

支持 iOS 8+、macOS 10.9+、tvOS 9+、watchOS 2+

在您的 Podfile 中包含 Stenographer

use_frameworks!
pod 'Stenographer', '~> 2.3'

有关 CocoaPods 入门信息的更多资料,请阅读指南

Carthage

支持 iOS 8+、macOS 10.9+、tvOS 9+、watchOS 2+

在您的 Cartfile 中包含 Stenographer

github "logkit/logkit" ~> 2.3

有关 Carthage 入门信息的更多信息,请访问repo

嵌入式框架

支持 iOS 8+、macOS 10.9+、tvOS 9+、watchOS 2+

Stenographer.xcodeproj 包含在您的项目(在项目根目录下二级,作为一个子项目)。选择您的目标,然后在“常规”选项卡中将 Stenographer 作为嵌入式二进制文件添加。选择适用于您目标操作系统适当的 Stenographer 框架。务必选择框架,而不是测试。

来源

支持 iOS 7+、macOS 10.9+、tvOS 9+、watchOS 2+

将 Stenographer 源代码集成是的唯一方法,以便将 Stenographer 包含到针对 iOS 7 的项目中。使用此安装方法时,请跳过 import Stenographer

Sources 目录中找到的所有 .swift 文件添加到您的项目中。安装过程中不需要其他步骤。

使用方法

Stenographer 很容易开始使用。所有内容都带有方便的初始化器,它们的参数要求最简(通常不需要参数)并提供了合理的默认值。快速入门,然后根据需要稍后进行定制。

使用下面的快速入门来立即开始,然后查看[使用指南][usage],详细了解 Stenographer 可以做什么。

快速入门

在您的 AppDelegate.swift 文件顶部附近,添加以下两行

import Stenographer

let log = SXLogger()

这会将 Stenographer 框架导入并创建一个全局的 Logger 实例。此 Logger 将使用标准控制台端点以默认格式记录所有消息进行初始化。由于 Logger 实例是在全局范围内创建的,您应该只创建一次(在 AppDelegate.swift 中是最佳位置)。

现在您可以在项目的任何地方进行记录

log.info("Hello Internet!")

// 2015-06-25 07:36:01.638000 [INFO] applicationDidFinishLaunching <AppDelegate.swift:23> Hello Internet!

现在您正在记录!您可以使用 debuginfonoticewarningerrorcritical Logger 方法。

附加端点

如果您希望同时将日志记录到文件和控制台,并且希望文件只接收 notice 及以上的日志条目,您可以将您的日志器配置如下

import Stenographer

let log = SXLogger(endpoints: [

    SXConsoleEndpoint(),

    SXFileEndpoint(
        fileURL: NSURL(string: /* Path to your log file */),
        minimumPriorityLevel: .Notice
    ),

])

您可以添加和配置所需数量的[端点][endpoints],例如包括的 File 和 HTTP 服务端点。您还可以完全[自定义格式][formatting],其中日志条目被写入每个端点。

格式化

每个端点都有一个名为 dateFormatter 的属性,用于控制条目的 dateTime 属性的格式化方式。它接受一个 SXDateFormatter 实例,通常在初始化时设置。

let log = SXLogger(endpoints: [

    SXConsoleEndpoint(
        dateFormatter = SXDateFormatter(formatString: "HH:mm:ss.SSS")
    ),

])

每个端点还有一个名为 entryFormatter 的属性,用于控制如何将条目转换为字符串用于输出。它接受一个 SXEntryFormatter 实例,通常也在初始化时设置。

let log = SXLogger(endpoints: [

    SXConsoleEndpoint(
        entryFormatter = SXEntryFormatter({ entry in
            return "\(entry.dateTime) [\(entry.level.uppercaseString)] \(entry.message)"
        })
    ),

])

有关格式化的详细信息、可用的日志条目属性以及 SXEntryFormatter,请参阅[条目格式化文档][formatting]。

贡献

Stenographer 欢迎贡献。

许可证

Stenographer 在宽松的 ISC 许可证 下授权。