Scriba:Lisp中的结构化日志库,支持多后端与自动配置(Scheme库)
摘要
Scriba是一个面向Guile Scheme的结构化日志库,支持多后端以及通过环境变量进行自动配置。
<p>我一直在开发Scriba,这是一个专门为Guile Scheme构建的结构化日志库,致力于灵活性、性能和易配置性。</p>
<p><a href="https://codeberg.org/jjba23/scriba" rel="ugc">https://codeberg.org/jjba23/scriba</a></p>
<p>它仍处于早期开发阶段,在确定核心架构之前,我想与这个优秀的社区分享,以获得大家的想法、批评和建议。</p>
<p>目前进展:</p>
<ul>
<li>
<p>自动配置日志器:最简单的入门方式。它读取环境变量(LOG_LEVEL、LOG_FORMAT等)以在运行时确定后端。非常适合在本地开发中使用控制台日志器,在生产环境中使用JSON结构化日志(用于Loki/Datadog等)。</p>
</li>
<li>
<p>控制台、彩色控制台、Syslog和结构化JSON日志器</p>
</li>
<li>
<p>动态日志上下文意味着您可以轻松地将元数据附加到日志中,以提高可观察性。Parameterize还允许以最大性能无缝嵌套上下文。</p>
</li>
<li>
<p>日志器的创建会被缓存。随后在代码库中任何位置创建相同配置的日志器的调用都是完全即时的。</p>
</li>
<li>
<p>大部分繁重的工作在编译时通过宏展开完成</p>
</li>
</ul>
<p>由于这是早期版本,我非常愿意根据社区反馈进行调整或改变方向。</p>
<p>您同意当前的设计和架构吗?您认为Lisp日志库必须具备哪些功能?</p>
<p>是否有任何特定的日志痛点您希望得到解决?</p>
<p>谢谢</p>
<p><a href="https://lobste.rs/s/xhucas/scriba_structured_logging_lisp_with">评论</a></p>
相似文章
cl-bbs: 用Common Lisp重写的类schemeBBS文本公告板
cl-bbs 是一个用 Common Lisp 编写的高性能匿名文本公告板引擎,忠实复刻了原始 SchemeBBS 的风格。它提供格式化支持、图片预览以及零 JavaScript 渲染等功能。
Hyperpolyglot Lisp:Common Lisp、Racket、Clojure、Emacs Lisp
一份对照参考表,比较Common Lisp、Racket、Clojure和Emacs Lisp的语法与特性。
Racket 的 Shrubbery 语法
Shrubbery 表示法是一种对行和缩进敏感的文本级表示法,用于 Racket 中的 Rhombus 编程语言,旨在部分地对输入进行分组以供进一步解析。
Rust类型系统中的Lisp
一个嵌入在Rust trait系统中的Lisp解释器,支持在编译时进行递归函数、闭包和延续传递风格。
库应该记录错误还是传播错误?
讨论库是否应该自行记录错误还是将错误传播给调用应用程序的争论,突出展示了不同生态系统(如Go的slog)中的不同实践。