0xLeif/Scribe
π Logging all events
Usage
Creating a ScribePlugin
To create a Scribe plugin, you need to create a struct or class that conforms to the ScribePlugin protocol and implement its requirements. Here is an example of a simple plugin that increments a count for each log:
class CountPlugin: ScribePlugin {
static let shared = CountPlugin()
var count: Int = 0
private init() {}
func handle(value: Scribe.PluginPayload) async throws {
count += 1
}
}Registering plugins to Scribe
Once you have created your Scribe Plugin, you just need to register it with your Scribe object. There are two ways to do this:
- Pass the plugin to the plugins parameter when creating the Scribe object:
let scribe = Scribe(
label: "test.count",
plugins: [
CountPlugin.shared
]
)- Call
scribe.register(plugin:)to add the plugin to an existing Scribe object:
let scribe = Scribe(label: "test.count")
scribe.register(plugin: CountPlugin.shared)Logging to Scribe
Scribe uses swift-log for logging, so the functions are similar in usage. To log a message with Scribe, simply call one of the logging functions, such as debug:
scribe.debug("Test")Log Levels
Scribe supports the following log levels:
tracedebuginfonoticewarningerrorcritical
Choose the appropriate log level depending on the importance and urgency of the message you are logging.
Package Metadata
Repository: 0xLeif/Scribe
Homepage: https://scribe.0xl.io/
Stars: 7
Forks: 0
Open issues: 1
Default branch: main
Primary language: swift
License: MIT
Topics: async-await, ios, log, logging, macos, plugin, plugins, swift, swift-log, watchos
README: README.md