LogStu
<代码>LogStu代码> 是一个简单而强大的日志框架,提供了内置主题和格式化工具,并允许您定义自己的 API。
用法
基础知识
- 在一个全局上下文中分配一个日志记录器,然后像使用
print
一样使用您的全局变量。
let log = Logger()
log.trace("the lightest logging level")
log.debug("some variable is \(someVariable)")
log.info(any, list, of, objects)
log.warning(one, two, three, separator: " - ")
log.error(error, terminator: "😱😱😱\n")
- 将
enabled
设置为false
来关闭LogStu
log.enabled = false
- 定义一个最低严重级别,只打印具有更大或相等严重性的消息
log.minLevel = .warning
严重级别有
trace
、debug
、info
、warning
和error
。
自定义
- 通过更改其
Theme
和/或Formatter
来创建自己的Logger
。
建议的方式是扩展 Formatters
和 Themes
extension Formatters {
static let detailed = Formatters("[%@] %@.%@:%@ %@: %@", [
.date("yyyy-MM-dd HH:mm:ss.SSS"),
.file(fullPath: false, fileExtension: false),
.function,
.line,
.level,
.message,
])
}
extension Themes {
static let newEmojis = Theme(trace: Theme.Style(emoji: "☎️"),
debug: Theme.Style(emoji: "🐜"),
info: Theme.Style(emoji: "💁♂️"),
warning: Theme.Style(emoji: "⚠️"),
error: Theme.Style(emoji: "👿"))
}
let log = Logger(formatter: .detailed, theme: .newEmojis)
没有任何东西阻止你创建你想要的任意数量的日志记录器!
let basic = logger()
let short = logger(formatter: Formatter("%@: %@", .level, .message),
theme: .tomorrowNightEighties,
minLevel: .info)
- 通过将主题设置为
nil
来关闭表情符号
log.theme = nil
高级
在你的格式化程序中包含一个自定义的 Block
组件来打印每条日志消息的结果
struct User {
static func token() -> Int {
return NSUserDefaults.standardUserDefaults.integerForKey("token")
}
}
Log.formatter = Formatter("[%@] %@: %@", .block(User.token), .level, .message)
安装
Carthage
Carthage 是一个去中心化的依赖关系管理器,可自动化将框架添加到您的 Cocoa 应用程序的过程。
您可以使用以下命令使用 Homebrew 安装 Carthage
$ brew update
$ brew install carthage
要在 Carthage 中将 Log 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "jasnstu/LogStu"
CocoaPods
CocoaPods 是 Cocoa 项目的依赖关系管理器。
您可以使用以下命令安装它
$ gem install cocoapods
要在 CocoaPods 中将 LogStu 集成到您的 Xcode 项目中,请在您的 PodFile
中指定它
use_frameworks!
pod 'LogStu'
许可
版权 (c) 2019 jasnstu (http://jasnstu.com))
特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的任何人不受限制地处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,允许软件提供方进行此类操作,但受以下条件的约束:
以上版权声明和本许可声明应包含在软件的任何副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是因为合同、侵权或其他原因,以及源于、源于或与软件、软件的使用或其他有关软件的处理有关。