vapor-simple-file-logger
vapor-simple-file-logger copied to clipboard
📝 A Swift Vapor provider for simple file logging on Vapor sites
Overview
A simple Vapor Logger provider for outputting server logs to log files.
Simple File Logger outputs separate files based on the log's LogLevel. Debug logs are output to debug.log, error logs to error.log, and so on. By default, logs are output to:
| Linux | macOS |
|---|---|
/var/log/Vapor/ |
~/Library/Caches/Vapor/ |
You can change Vapor/ to an arbitrary directory by changing the executableName during setup.
Installation
Add this dependency to your Package.swift:
dependencies: [
.package(url: "https://github.com/hallee/vapor-simple-file-logger.git", from: "1.0.1"),
],
And add "SimpleFileLogger" as a dependency to your app's target.
Setup
In configure.swift:
services.register(SimpleFileLogger.self)
config.prefer(SimpleFileLogger.self, for: Logger.self)
To define an executable name and include timestamps, you can provide configuration:
services.register(Logger.self) { container -> SimpleFileLogger in
return SimpleFileLogger(executableName: "hal.codes",
includeTimestamps: true)
}
config.prefer(SimpleFileLogger.self, for: Logger.self)
Usage
You can create a logger anywhere in your Vapor application with access to its Container with:
Container.make(Logger.self)
For example, to log all the requests to your server:
router.get(PathComponent.catchall) { req in
let logger = try? req.sharedContainer.make(Logger.self)
logger?.debug(req.description)
}