Log
是一个功能强大的日志框架,提供内置的主题和格式化功能,以及一个定义自己API的良好API。
要充分利用
Log
,请安装XcodeColors
和KZLinkedConsole
。
使用
基础知识
- 使用
Log
就像使用print
一样。
let Log = Logger()
Log.trace("Called!!!")
Log.debug("Who is self:", self)
Log.info(some, objects, here)
Log.warning(one, two, three, separator: " - ")
Log.error(error, terminator: "😱😱😱\n")
- 通过设置
enabled
为false
来禁用Log
Log.enabled = false
- 定义一个最小严重级别,只打印严重级别更高或相等的消息
Log.minLevel = .warning
严重级别有
trace
、debug
、info
、warning
和error
。
自定义
- 通过更改其
主题
和/或格式化程序
来创建自己的Logger
。
建议的方法是扩展格式化程序
和主题
。
extension Formatters {
static let detailed = Formatter("[%@] %@.%@:%@ %@: %@", [
.date("yyyy-MM-dd HH:mm:ss.SSS"),
.file(fullPath: false, fileExtension: false),
.function,
.line,
.level,
.message
])
}
extension Themes {
static let tomorrowNight = Theme(
trace: "#C5C8C6",
debug: "#81A2BE",
info: "#B5BD68",
warning: "#F0C674",
error: "#CC6666"
)
}
let Log = Logger(formatter: .detailed, theme: .tomorrowNight)
提示:Log.format
和Log.colors
对视觉调试日志很有用。
没有阻止您创建任意数量的日志记录器!
let Basic = Logger(formatter: .default, theme: nil)
let Short = Logger(
formatter: Formatter("%@: %@", .level, .message),
theme: .tomorrowNightEighties,
minLevel: .info
)
- 通过将主题设置为
nil
来关闭颜色
Log.theme = nil
高级
在您的formatter中包含一个自定义的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 "delba/Log"
CocoaPods
CocoaPods是一个用于Cocoa项目的依赖管理工具。
您可以使用以下命令安装它:
$ gem install cocoapods
要使用CocoaPods将Log集成到您的Xcode项目中,请在您的Podfile
中指定它
use_frameworks!
pod 'Log'
许可
版权所有 (c) 2015-2016 Damien (http://delba.io)
任何获得本软件及其相关文档副本(以下简称“软件”)的个人,未经限制,包括但不限于使用、复制、修改、合并、出版、分发、许可和/或出售软件副本的权利,并允许提供给软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
本软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不仅限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者都不应对任何诉讼、损害或其他责任负任何责任,无论这些责任源于合同、侵权或其他原因,以及与软件或ソフトウェア的使用或其他处理有关的问题。