Adds the powerful logging of SwiftyBeaver to Vapor for server-side Swift on Linux and Mac.
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
])
]
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 🙌
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.
Learn more about colored logging to Xcode 8 Console.
Learn more about logging to file which is great for Terminal.app fans or to store logs on disk.
Learn more about logging to the SwiftyBeaver Platform during release!
Get support via Github Issues, email and our public Slack channel.
SwiftyBeaverVapor is released under the MIT License.