Awesome
SwiftyBeaver Logging Provider for Vapor
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
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.