Loggerithm 1.5

Loggerithm 1.5

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2017年10月
SwiftSwift 版本4.0
SPM支持 SPM

张洪浩 维护。




  • 张洪浩

Loggerithm

一个轻量级的 Swift 日志记录器,以彩色输出使用 print 在调试中,使用 NSLog 在生产中。

为什么

在 Swift 中,我们通常使用 print 将信息记录到控制台。然而,在生产版本中不会记录任何内容。

因此,我们希望在生产中使用 NSLog,但仍希望保留开发和 print 的效率。(print 比较快于 NSLog)。

该项目始于半年多前,名为 ZHSwiftLogger。当时,没有其他 Swift 日志记录器提供此功能。因此,我为此开发了这个日志记录器作为个人使用。

如今,我们有了越来越多的优秀的 Swift 日志记录器。而 Loggerithm 轻量级、简单直接且方便使用。

功能

  • [x] 在调试中使用 print,在生产中使用 NSLog
  • [x] 格式化输出,类似于 NSLog
  • [x] 支持日志级别。
  • [x] 彩色输出和颜色自定义。
  • [x] 完备的单元测试覆盖。

要求

  • iOS 8.0+ / Mac OS X 10.9+
  • Xcode 7.0

安装

Swift 包管理器

Swift 包管理器(https://swiftlang.cn/package-manager/)是用于自动分发 Swift 代码的工具,并集成到 swift 编译器中。它处于早期开发阶段,但 Loggerithm 支持在支持的平台上使用。

一旦您已经设置了 Swift 包,将 Loggerithm 添加为依赖关系就像将它添加到 Package.swiftdependencies 值一样简单。

dependencies: [
    .Package(url: "https://github.com/honghaoz/Loggerithm.git", majorVersion: 1)
]

手动

  • Source 文件夹中的 Swift 文件添加到您的项目中

  • DEBUG 标志添加到 Swift 编译器

    • 打开项目设置
    • 选择您的目标
    • 转到 Build Settings
    • 搜索 Swift
    • Swift 编译器 - 自定义标志 部分,在 其他 Swift 标志 行,添加 -D DEBUG

彩色输出支持

需要安装 XcodeColors 插件。

XcodeColors 安装

  • 你可以通过派生 XcodeColors 存储库并构建来安装它。
  • 或者使用 Alcatraz 来安装它。

设置环境变量

当 XcodeColors 安装并正确加载后。为了让记录器自动开启,你需要在你的构建方案中添加环境变量 "XcodeColors" = "YES"

可以通过以下方式实现

  • 在目标选择下,点击 编辑方案…
  • 参数 标签下,在 环境变量 中,点击 + 添加一个新的环境变量,名称为“XcodeColors”,值为“YES”。

你也可以通过修改 useColorfulLog 属性来手动强制开启/关闭彩色输出。

使用方法

基本使用

如果你使用 CocoaPods 集成 Loggerithm,先导入 Loggerithm。

import Loggerithm
var log = Loggerithm()

// Usage example
log.verbose("Verbose message...")
log.debug("Debug message...")
log.info("Info message...")
log.warning("Warning message...")
log.error("Error message...")

结果:

日志级别

默认情况下,开发模式下 logLevel.Verbose,生产模式下为 .Warning

LogLevel 从低到高的排序为:

.All

.Verbose

.Debug

.Info

.Warning

.Error

.Off

低于 logLevel 级别的日志将被忽略。

高级使用

字段

日志字符串包含 5 个字段,格式为:

y-MM-dd HH:mm:ss.SSS [LogLevel] [FileName:LineNumber] functionName: message

所有日志字段都可以开启/关闭。

var log = Loggerithm()

log.showDateTime = false
log.info("date time is turned off.")

log.showLineNumber = false
log.info("Line number is turned off.")

log.showFileName = false
log.info("File name is turned off.")

log.showFunctionName = false
log.info("Function name is turned off.")

log.showLogLevel = false
log.info("Log level is turned off.")

log.emptyLine()
log.info("Restoring to full format...")

结果:

格式化输出

var log = Loggerithm()
log.verbose("I can use format: %d + %d = %d", args: 1, 1, 2)

结果:

彩色输出

开启/关闭切换

更多信息请参见 安装/彩色输出支持

可以通过修改 useColorfulLog 来开启/关闭彩色输出。

log.useColorfulLog = false
log.info("Color is turned off.")
log.useColorfulLog = true
log.info("Color is turned on.")

注意,如果你没有安装 XcodeColors 插件但开启了 useColorfulLog,这会导致隐藏的彩色设置代码可见。

[fg190,190,190;2015-08-14 16:55:34.075 [Verbose] [ViewController.swift:34] viewDidLoad(): Verbose message...[;
[fg60,161,202;2015-08-14 16:55:34.076 [Debug] [ViewController.swift:35] viewDidLoad(): Debug message...[;

颜色定制

var log = Loggerithm()

log.verboseColor = UIColor.grayColor()
log.debugColor = UIColor.greenColor()
log.infoColor = UIColor.yellowColor()
log.warningColor = UIColor.orangeColor()
log.errorColor = UIColor.redColor()

log.verbose("Verbose message...")
log.debug("Debug message...")
log.info("Info message...")
log.warning("Warning message...")
log.error("Error message...")

结果:

待办事项

  • [ ] 登录到文件

MIT 许可协议(MIT)

MIT 许可协议(MIT)版权所有 © 2014 张宏昊

以下条件,任何人免费获此软件及其相关文档副本(以下简称“软件”),可不受限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许人员使用软件,前提是软件提供给人员的副本必须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用特定目的和不侵犯专利权。在任何情况下,作者或版权持有人均不对任何主张、损害或责任承担任何责任,无论是因合同、侵权或其他方式产生的,引发于、源于或与此软件或使用或操作软件相关。