backlog options
Tip: Use Tab to navigate tickets and Enter/Space to expand or collapse cards.
Sensitive Data Masking (PII - Secret Filtering)
To-do
Task
In enterprise environments, inadvertently logging passwords, API keys, or personally identifiable information (PII) is a massive liability.
Feature: Data sanitization hooks.
Mechanics: Add a #:mask-fields option or a sanitization procedure hook to the logger constructor. If a key in the log context matches "password" or "secret", its value is automatically replaced with "[MASKED]" before the layout is rendered or serialized to JSON.
Asynchronous Logging (Non-blocking I/O)
To-do
Task
Right now, even though your compile-time macros and level-filtering are incredibly fast, writing to an output port is still a synchronous, blocking operation. If a disk slows down or a network socket experiences latency, your application code pauses.
Feature: An asynchronous logger wrapper.
Mechanics: The logging macro pushes the log data onto a lockless thread-safe queue (or a Guile channel) and immediately returns control to the application. A dedicated background thread or actor pulls from this queue and handles the actual I/O writing.
The Guile ecosystem heavily utilizes Fibers for cooperative concurrency.
Feature: Ensure first-class citizen compatibility with guile-fibers.
Mechanics: Provide a dedicated scriba-fibers module that uses non-blocking Fiber ports or concurrent channels, guaranteeing that logging operations never block the main fiber scheduler loop.
scriba-12Allow auto-logger to read from config files (env var still should take precedence)
To-do
Task
Scheme files, YAML, TOML, JSON, etc
While environment variables are perfect for Twelve-Factor apps and Docker/Guix containers, complex applications often prefer a dedicated configuration file.
Improvement: Allow scriba-auto-logger to look for config files in the project root or etc
scriba-2Add optional rolling file facilities
To-do
Task
In production, logging to a single file indefinitely will eventually exhaust disk space.
Improvement: Implement a scriba-file-logger that accepts configuration for file rotation.
Mechanics: Support size-based rotation (e.g., #:max-size-mb 10) and time-based rotation (e.g., #:rotate-daily #t). You can manage file descriptors under the hood, seamlessly closing the old port, renaming the file (e.g., test.log to test.1.log), and opening a fresh one without stopping the application.
scriba-8Explain Log severities: what is info? what is warning? what is trace?
To-do
Task
journald native compatible syslog logger
To-do
Task
Native HTTP/UDP Log Shippers
To-do
Task
Right now, tools like Loki or Datadog have to scrape stdout or a syslog socket. Sending logs directly via network protocols can eliminate intermediate log-scraping daemons.
Feature: Network transport backends.
Mechanics: Create a scriba-http-logger or scriba-udp-logger that buffers logs in memory and flushes them in batches directly to a remote endpoint (like a Grafana Loki HTTP Push API or a Graylog GELF endpoint).
scriba-14log-exception: Automated Exception/Backtrace Capturing
To-do
Task
When an error occurs in Scheme, printing just the error message often loses the most valuable asset: the stack trace.
Feature: An exception-aware log macro (e.g., log-exception).
Mechanics: Create a macro or a handler wrapper that catches Guile exceptions, automatically extracts the structured stack trace components, and formats them cleanly inside the JSON or console layout.
scriba-15