A logger protocol that provides a common logging interface for different kinds of loggers. In addition, a class with a set of static functions for logging within your code is provided.
Kitura uses this API throughout its implementation when logging.
Add the LoggerAPI
package to the dependencies within your application’s Package.swift
file. Substitute "x.x.x"
with the latest LoggerAPI
release:
.package(url: "https://github.com/Kitura-Next/LoggerAPI.git", from: "x.x.x")
Add LoggerAPI
to your target's dependencies:
.target(name: "example", dependencies: ["LoggerAPI"]),
import LoggerAPI
Add log messages to your application:
Log.warning("This is a warning.")
Log.error("This is an error.")
You need to define a logger
in order to output these messages. You may wish to write your own Logger
implementation, or you can use HeliumLogger
that writes to standard output:
import LoggerAPI
import HeliumLogger
let myLogger = HeliumLogger(.info)
Log.logger = myLogger
You can find out more about HeliumLogger here.
You can direct your log messages to be logged via swift-log by setting the swiftLogger
property:
import LoggerAPI
import Logging
let myLogger = Logging.Logger(label: "myLogger")
myLogger.logLevel = .notice
Log.swiftLogger = myLogger
If both logger
and swiftLogger
are set, then log messages will be sent to both logging backends. The log level configured for a LoggerAPI Logger and a swift-log Logger are independent, so may be used to log at different levels.
Note that because the hierarchy of log levels defined by LoggerAPI and swift-log is slightly different, a mapping is defined between the levels. See the documentation for Log.isLogging()
for details.
Requires Swift 5.1 or newer. You can download this version of the Swift binaries by following this link. Compatibility with other Swift versions is not guaranteed.
For more information visit our API reference.
We love to talk server-side Swift, and Kitura. Join our Slack to meet the team!
This library is licensed under Apache 2.0. Full license text is available in LICENSE.