Home

Awesome

SwiftyBeaver Logging Provider for Vapor

Swift Vapor 3.x SwiftyBeaver 1.x Slack

Adds the powerful logging of SwiftyBeaver to Vapor for server-side Swift on Linux and Mac.

Installation

Add this to the Package.swift of your Vapor project:

dependencies: [
    .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver-Vapor.git", from: "1.1.0"),
	//...other packages here
],
targets: [
        .target(name: "App", dependencies: [
            .product(name: "SwiftyBeaverVapor", package: "SwiftyBeaver-Vapor")
	    //...other packages here
        ])
]
<br/>

Setup

In configure.swift:


import SwiftyBeaverVapor
import SwiftyBeaver

/// Called before your application initializes.
public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws {
    
    // ...

    // console logging 
    let consoleDestination = ConsoleDestination()
    try services.register(SwiftyBeaverProvider(destinations: [consoleDestination]))
    
    // OR console and cloud platform logging
    let consoleDestination = ConsoleDestination()
    let cloudDestination = SBPlatformDestination(appID: "xxx", appSecret: "xxxxxx", encryptionKey: "xxxxx")
    try services.register(SwiftyBeaverProvider(destinations: [consoleDestination, cloudDestination]))

    config.prefer(SwiftyBeaverVapor.self, for: Logger.self)

    // ...
}

Add the SwiftyBeaver logging destinations you want to use, optionally adjust their defaults like format, color, filter or minimum log level and you are ready to log 🙌 <br/>

Use

For example, you can log requests as they come in.

func index(_ req: Request) throws -> Future<[Foo]> {

    let logger = try? req.sharedContainer.make(Logger.self)
    logger?.log(req.description, at: .verbose, file: #file, function: #function, line: #line, column: #column)

    return Foo.query(on: req).all()
}

For more information see the SwiftyBeaver destination docs and how to set a custom logging format. <br/><br/>

Output to Xcode 8 Console

<img src="https://cloud.githubusercontent.com/assets/564725/18640658/5e1ea16e-7e99-11e6-8fbf-706b3150c617.png" width="615">

Learn more about colored logging to Xcode 8 Console. <br/><br/>

Output to File

<img src="https://cloud.githubusercontent.com/assets/564725/18640664/658667ac-7e99-11e6-9267-d7cd168fea47.png" width="802">

Learn more about logging to file which is great for Terminal.app fans or to store logs on disk. <br/><br/>

Output to Cloud & Mac App

swiftybeaver-demo1

Learn more about logging to the SwiftyBeaver Platform during release! <br/><br/>

Learn More

Get support via Github Issues, email and our <b><a href="https://slack.swiftybeaver.com">public Slack channel</a></b>. <br/><br/>

License

SwiftyBeaverVapor is released under the MIT License.