{
  "id": 5241632,
  "title": "deforester - Logging for Janet",
  "url": "https://urgent.news/2026/09/03/deforester-logging-for-janet",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-03T04:12:04.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://codeberg.org/veqq/deforester"
  },
  "original_language": "en",
  "account": "Deforester is a logging library designed primarily for personal computing and local program execution, offering a file-writer capability that allows events to be printed unbuffered in web production systems. The library provides several bindings, including log, set-logger!, with-log-ctx, with-duration-logged, with-config, log*, as well as configuration helpers such as text-format and file-writer, file-writer-fast, and key-renamer. Users can even overwrite the :msg or :time fields for stable snapshot test results.\n\nDeforester's primary advantage lies in its ability to facilitate the emission of high-quality events; however, the success of these events hinges on the consumer's taxonomy design, which dictates how events are named and what fields they contain. The library currently allows for the emission of basic events with fields for :time, :level, :msg, and domain information. Additionally, it includes a with-duration-logged feature that can log :error messages, duration in milliseconds, and outcome, which can be either :success or :failure.\n\nThe library's approach to logging levels is somewhat unconventional, as it emphasizes the importance of attention and audience over strict filtering mechanisms. Deforester suggests that users consider using a multi-level system, such as :topic :audit, to keep category distinctions clear from attention levels. It also highlights the potential for incorporating additional levels as needed.",
  "summary": "I also made a r7rs scheme version (which lacks some things, due to portability/unfinished standard). Comments",
  "key_points": [
    "Deforester is a logging library for local program execution",
    "Offers file-writer for unbuffered event printing in web systems",
    "Allows overwriting :msg or :time fields for test results"
  ],
  "editors_take": "Deforester's design approach, emphasizing attention and audience over strict filtering, shifts the focus of logging from technical categorization to nuanced event communication, benefiting users who value contextual event information.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}