Scriba: Structured logging in Lisp with multiple backends and auto-config (Scheme library)

Lobsters Hottest Tools

Summary

Scriba is a structured logging library for Guile Scheme with multiple backends and auto-configuration via environment variables.

<p>I’ve been working on Scriba, a structured logging library built specifically for Guile Scheme with flexibility, performance, and easy configuration in mind.</p> <p><a href="https://codeberg.org/jjba23/scriba" rel="ugc">https://codeberg.org/jjba23/scriba</a></p> <p>It’s still in the early stages of development, and before locking in the core architecture, I wanted to share it with this great community to get your thoughts, critiques, and ideas.</p> <p>So Far:</p> <ul> <li> <p>Auto-Configured Logger: The easiest way to get started. It reads environment variables (LOG_LEVEL, LOG_FORMAT, etc.) to determine the backend at runtime. Perfect for using a console logger in local dev and JSON structured logging in production (for Loki/Datadog/etc.).</p> </li> <li> <p>Console, Color Console, Syslog and Structured JSON loggers</p> </li> <li> <p>Dynamic Log Context means you can easily attach metadata to your logs for better observability. Parameterize allows also seamless nesting context with maximum performance.</p> </li> <li> <p>Logger creation is cached. Subsequent calls to create the identically configured logger anywhere in your codebase are completely instant.</p> </li> <li> <p>Most of the heavy lifting is done at compile time with macro expansion</p> </li> </ul> <p>Since this is an early release, I’m very open to pivoting or adjusting things based on community feedback.</p> <p>Do you agree with the current design and architecture? What features would you consider "must-haves" for a Lisp logging library?</p> <p>Are there any specific pain points in logging you'd like to see solved?</p> <p>Thanks</p> <p><a href="https://lobste.rs/s/xhucas/scriba_structured_logging_lisp_with">Comments</a></p>
Original Article

Similar Articles

gabime/spdlog

GitHub Trending (daily)

spdlog is a fast, header-only or compiled C++ logging library with support for various sinks, asynchronous mode, and custom formatting. It is widely used and available via major package managers.

Program images and portable Scheme backends for Jolt

Lobsters Hottest

Jolt, a Lisp/Scheme language, recently added two features: program images in the style of Common Lisp and Smalltalk for full-state serialization and debugging, and a portable Scheme backend decoupled from the Chez runtime for architecture-agnostic portability.

Shrubbery syntax for Racket

Lobsters Hottest

Shrubbery notation is a line- and indentation-sensitive text-level notation for the Rhombus programming language in Racket, designed to partially group input for further parsing.