Swiftpack.co - 0xLeif/Scribe as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by 0xLeif.
0xLeif/Scribe 2.0.2
📜 Logging all events
⭐️ 8
🕓 25 weeks ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/0xLeif/Scribe.git", from: "2.0.2")


📜 Logging all events

Scribe is a flexible logging library for Swift, designed to make logging easy and efficient. It provides a centralized system for logging messages and events within your application, and supports multiple logging outputs and plugins to extend its capabilities to meet your needs. Scribe integrates with swift-log for console logging, making it a versatile solution for all your logging requirements.


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:

  1. Pass the plugin to the plugins parameter when creating the Scribe object:
let scribe = Scribe(
    label: "test.count",
    plugins: [
  1. 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:


Log Levels

Scribe supports the following log levels:

  • trace
  • debug
  • info
  • notice
  • warning
  • error
  • critical

Choose the appropriate log level depending on the importance and urgency of the message you are logging.


Stars: 8
Last commit: 4 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

25 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics