SwiftyBeaver

Convenient & secure logging during development & release in Swift 4 & 5

Stars
5.81K
Forks
470
Open issues
8
Closed issues
296
Last commit
7 months ago
Watchers
5.81K
Total releases
0
Total commits
638
Open PRs
1
Closed PRs
166
Repo URL
Platform
License
mit
Category
Usecase
Offers premium version?
NO
Proprietary?
NO
About

Colorful, flexible, lightweight logging for Swift 3, Swift 4 & Swift 5.
Great for development & release with support for Console, file & cloud destinations for server-side Swift.



During Development: Colored Logging to Xcode Console

Learn more about colored logging to Xcode 8 Console with Swift 3, 4 & 5. 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 ๐Ÿ’œs or replace them with something else ๐Ÿ˜‰


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.


Google Cloud & More

You can fully customize your log format, turn it into JSON, or create your own destinations. For example, our Google Cloud Destination is just another customized logging format that adds the powerful functionality of automatic server-side Swift logging when hosted on Google Cloud Platform.




Installation

  • For Swift 4 & 5 install the latest SwiftyBeaver version
  • For Swift 3 install SwiftyBeaver 1.8.4
  • For Swift 2 install SwiftyBeaver 0.7.0


Carthage

You can use Carthage to install SwiftyBeaver by adding that to your Cartfile:

Swift 4 & 5:

github "SwiftyBeaver/SwiftyBeaver"

Swift 3:

github "SwiftyBeaver/SwiftyBeaver" ~> 1.8.4

Swift 2:

github "SwiftyBeaver/SwiftyBeaver" ~> 0.7

Swift Package Manager

For Swift Package Manager add the following package to your Package.swift file. Just Swift 4 & 5 are supported:

.package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", .upToNextMajor(from: "2.0.0")),

CocoaPods

To use CocoaPods just add this to your Podfile:

Swift 4 & 5:

pod 'SwiftyBeaver'

Swift 3:

target 'MyProject' do
  use_frameworks!

# Pods for MyProject pod 'SwiftyBeaver', '~> 1.8.4' end

Swift 2:

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



Usage

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 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

// use custom format and set console output to short time, log level & message console.format = "$DHH:mm:ss$d $L $M" // or use this for JSON output: console.format = "$J"

// add the destinations to SwiftyBeaver log.addDestination(console) log.addDestination(file)

// 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"])

// optionally add context to a log message console.format = "$L: $M $X" log.debug("age", context: 123) // "DEBUG: age 123" log.info("my data", context: [1, "a", 2]) // "INFO: my data [1, \"a\", 2]"



Server-side Swift

We โค๏ธ server-side Swift 4 & 5 and SwiftyBeaver support it out-of-the-box! Try for yourself and run SwiftyBeaver inside a Ubuntu Docker container. Just install Docker and then go to your project folder on macOS or Ubuntu and type:

# create docker image, build SwiftyBeaver and run unit tests
docker run --rm -it -v $PWD:/app swiftybeaver /bin/bash -c "cd /app ; swift build ; swift test"

optionally log into container to run Swift CLI and do more stuff

docker run --rm -it --privileged=true -v $PWD:/app swiftybeaver

Best: for the popular server-side Swift web framework Vapor you can use our Vapor logging provider which makes server logging awesome again ๐Ÿ™Œ



Documentation

Getting Started:

Logging Destinations:

Advanced Topics:



License

SwiftyBeaver Framework is released under the MIT License.

Alternative Projects
No projects found

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.