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>
cl-bbs is a high-performance anonymous textboard engine written in Common Lisp, faithfully replicating the original SchemeBBS style. It offers features like formatting support, image previews, and zero-JavaScript rendering.
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.
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 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.