🤖 LoggerKit is logging framework that provides a format, log levels and multiple output destinations.
Using pre bundled logger class Logger
, you can send log with log level like:
// Global context
let logger = Logger()
let stdout = StandardOut()
logger.register(destination: stdout)
// In some code
logger.debug("For debug")
logger.verbose("Something verbose")
logger.info("Something want to know")
logger.warning("Not expected, but not error")
logger.error("Something went wrong, fix this")
You can register custom destinations and log format. Log format belongs to destination. So you can set format by each destination.
// Create your log formatter
final class CustomLogFormatter: LogFormatterProtocol {
func format(message: Any, level: LogLevel, context: LogContextProtocol) -> String {
// Format message here
}
}
// Create you log destination
final class CustomLogDestination: LogDestinationProtocol {
var formatter: LogFormatterProtocol
init(formatter: LogFormatterProtocol = CustomLogFormatter()) {
self.formatter = formatter
}
func write(_ message: Any, level: LogLevel, context: LogContextProtocol) {
let formatted = formatter.format(message, level: level, context: context)
// You can write here how you want
}
}
Using CocoaPods:
pod 'LoggerKit'
In order to create Xcode project, run:
$ swift package generate-xcodeproj
$ bundle exec podspec_bump minor
$ pod lib lint
$ git push --tags
$ pod trunk push LoggerKit.podspec