Log is a powerful logging framework that provides built-in themes and formatters, and a nice API to define your owns.
Get the most out of
Logby installingXcodeColorsandKZLinkedConsole
Usage • Installation • License
Usage
The basics
- Use
Logjust as you would useprint.
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")
- Disable
Logby settingenabledtofalse:
Log.enabled = false
- Define a minimum level of severity to only print the messages with a greater or equal severity:
Log.minLevel = .warning
The severity levels are
trace,debug,info,warning, anderror.
Customization
- Create your own
Loggerby changing itsThemeand/orFormatter.
A suggested way of doing it is by extending Formatters and Themes:
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)
See the built-in formatters and themes for more examples.
Tip: Log.format and Log.colors can be useful to visually debug your logger.
Nothing prevents you from creating as many loggers as you want!
let Basic = Logger(formatter: .default, theme: nil)
let Short = Logger(
formatter: Formatter("%@: %@", .level, .message),
theme: .tomorrowNightEighties,
minLevel: .info
)
- Turn off the colors by setting the theme to
nil:
Log.theme = nil
Advanced
Include a custom Block component in your formatter to print its result in every log message:
struct User {
static func token() -> Int {
return NSUserDefaults.standardUserDefaults.integerForKey("token")
}
}
Log.formatter = Formatter("[%@] %@: %@", .block(User.token), .level, .message)
Installation
Carthage
Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate Log into your Xcode project using Carthage, specify it in your Cartfile:
github "delba/Log"
CocoaPods
CocoaPods is a dependency manager for Cocoa projects.
You can install it with the following command:
$ gem install cocoapods
To integrate Log into your Xcode project using CocoaPods, specify it in your Podfile:
use_frameworks!
pod 'Log'