Colorful, flexible, lightweight logging for Swift 2 & Swift 3.
Great for development & release with support for Console, File & cloud platforms.
NEW: Log during release to the conveniently built-in SwiftyBeaver Platform and Mac App!
Docs | Website | Slack | Twitter | License
During Development: Colored Logging to Xcode Console
Learn more about colored logging to Xcode 8 Console with Swift 3. For Swift 2.3 use this Gist. No need to hack Xcode 8 anymore to get color. You can even customize the log level word (ATTENTION instead of ERROR maybe?), the general amount of displayed data and if you want to use the
During Development: Colored Logging to File
Learn more about logging to file which is great for Terminal.app fans or to store logs on disk.
On Release: Encrypted Logging to SwiftyBeaver Platform
Learn more about logging to the SwiftyBeaver Platform during release!
Browse, Search & Filter via Mac App
Conveniently access your logs during development & release with our free Mac App.
- For Swift 3 install the latest SwiftyBeaver version
- For Swift 2 install SwiftyBeaver 0.7.0
You can use Carthage to install SwiftyBeaver by adding that to your Cartfile:
github "SwiftyBeaver/SwiftyBeaver" ~> 0.7
To use CocoaPods just add this to your Podfile:
target 'MyProject' do use_frameworks! # Pods for MyProject pod 'SwiftyBeaver', '~> 0.7' end post_install do |installer| installer.pods_project.build_configurations.each do |config| # Configure Pod targets for Xcode 8 with Swift 2.3 config.build_settings['SWIFT_VERSION'] = '2.3' end end
Swift Package Manager
For Swift Package Manager add the following package to your Package.swift file. Just Swift 3 is supported:
.Package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", majorVersion: 1)
Add that near the top of your
AppDelegate.swift to be able to use SwiftyBeaver in your whole project.
import SwiftyBeaver let log = SwiftyBeaver.self
At the the beginning of your
AppDelegate:didFinishLaunchingWithOptions() add the SwiftyBeaver log destinations (console, file, etc.), optionally adjust the log format and then you can already do the following log level calls globally:
// add log destinations. at least one is needed! let console = ConsoleDestination() // log to Xcode Console let file = FileDestination() // log to default swiftybeaver.log file let cloud = SBPlatformDestination(appID: "foo", appSecret: "bar", encryptionKey: "123") // to cloud // use custom format and set console output to short time, log level & message console.format = "$DHH:mm:ss$d $L $M" // add the destinations to SwiftyBeaver log.addDestination(console) log.addDestination(file) log.addDestination(cloud) // Now let’s log! log.verbose("not so important") // prio 1, VERBOSE in silver log.debug("something to debug") // prio 2, DEBUG in green log.info("a nice information") // prio 3, INFO in blue log.warning("oh no, that won’t be good") // prio 4, WARNING in yellow log.error("ouch, an error did occur!") // prio 5, ERROR in red // log anything! log.verbose(123) log.info(-123.45678) log.warning(Date()) log.error(["I", "like", "logs!"]) log.error(["name": "Mr Beaver", "address": "7 Beaver Lodge"])
# create docker image, build SwiftyBeaver and run unit tests swift build --clean && docker build --rm -t swiftybeaver . # optionally log into container to run Swift CLI and do more stuff docker run --rm -it --privileged=true -v $PWD:/app swiftybeaver
- Colored Logging to Xcode Console
- Colored Logging to File
- Encrypted Logging & Analytics to SwiftyBeaver Platform
More destination & system documentation is coming soon!
Get support via Github Issues, email and public Slack channel.
SwiftyBeaver Framework is released under the MIT License.