Scriba: Structured Logging in Lisp (Guile Scheme)
Scriba introduces an auto-logger feature for structured logging in Lisp, specifically in Guile Scheme. This feature allows for easy configuration of logging behaviors based on the environment, facilitating different logging formats for development and production. The auto-logger can read environment variables to determine the appropriate logger and settings at runtime.
- ▪The auto-logger simplifies the process of setting up loggers by automatically determining configurations based on environment variables.
- ▪It supports different logging formats, such as colorful console logs for development and structured JSON logs for production.
- ▪Logger creation is memoized, ensuring that subsequent calls for the same logger are instant.
Hacker News (Newest) files mainly under programming. We currently carry 5,306 of its stories.
Story provenance
Source · retrieval · rights · ranking — open for full record
inspect →
Story provenance
Attribution is not the same as permission. This drawer separates discovery metadata, excerpts, WeSearch-generated summaries, reuse status, and whether the publisher receives the visit. Nothing here claims a legal grant the publisher has not made.
Record
| Original publisher | Codeberg.org |
| Canonical URL | https://codeberg.org/jjba23/scriba |
| Publication time | Sun, 24 May 2026 09:44:09 +0000 |
| Retrieval time | 2026-05-24T10:07:32.096Z |
| Last seen | 2026-05-24T10:07:32.096Z |
| Headline source | Publisher (no WeSearch rewrite) |
| Excerpt source | publisher body |
| Excerpt method | First ~120 words (~800 chars) of extracted publisher body, fair-use limited. |
| Summary | WeSearch · cerebras-chat (WeSearch summarizer) |
| Summary source text | contentText |
| Citation coverage | Summary is a WeSearch-generated derivative; primary citation is the original publisher URL. |
| Cluster | wjr4XY_F1y7u |
| Cluster logic | Grouped by semantic title/content similarity across sources within a rolling window. Same-publisher template collisions are excluded from coverage comparison. |
| Ranking reason | Story pages are not engagement-ranked. Hub feeds use recency, with optional source-diversified chronological ordering (cap consecutive stories per source). No personalized ranking. |
| Publisher visit | Yes — open original |
| Substitutes article? | No — link-out required for full text |
Rights status (four layers)
WeSearch handling by dimension
| Indexing | May the item be indexed (stored, ranked, made findable)? | Allowed |
| Snippet | May a short excerpt of the publisher's text be shown? | Allowed |
| AI summary | May WeSearch generate its own short summary of the article? | Limited |
| Retrieval / RAG | May the content be exposed for third-party retrieval-augmented generation? | Not asserted |
| Model training | May the content be used to train AI models? | Not asserted |
| Commercial reuse | May the content be reused commercially? | Not permitted |
Basis: Derived from the published RSS/Atom feed. Contact: [email protected]. Reviewed: 2026-07-24.
Opening excerpt (first ~120 words) tap to expand
While you can instantiate specific loggers manually, the simplest way to get started is with the auto-logger. It reads environment variables (and, in the future, Scheme configuration files) to automatically determine at runtime which logger to use and how to configure it. This is especially useful for maintaining different logging behaviors between development and production environments. A common use-case is to use a pretty and colorful console logger in local development, and structured JSON logging in production, for logs to be parsed and aggregated by tools like Loki. (define-module (my-module) #:use-module (scriba auto) #:use-module (scriba scriba)) (let* ((s (scriba-auto-logger))) (log-info s "Hello Scriba!") (with-log-context `((key-1 .
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Codeberg.org.