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.
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.
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)
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)
}