2024 Clojure状态调查!分享您的想法。

欢迎!请查看关于页面了解更多关于如何使用本站的信息。

+6
tools.logging
已关闭

是否希望将slf4j 2工厂添加到clojure tools.logging?

slf4j 2改变了其发现实现的方式 - 现在它使用java ServiceLoader(标准)功能。

客户端版本1.x的API与版本2.x的API兼容。
但是实现已经变化 - 实现是如何加载的。

https://www.slf4j.org/faq.html#changesInVersion200

我认为旧的加载方式无法找到使用服务加载器的新的slf4j 2.0实现。
https://github.com/clojure/tools.logging#selecting-a-logging-implementation(已编辑)。

如果这个建议可行,我可以提供一个PR。

关闭言论:无需更改,已更新测试依赖至2.0.6

1 答案

+1

我已经在https://clojure.atlassian.net/browse/TLOG-28创建了Jira来跟踪这个问题。如果您有兴趣提供补丁,可以按照以下步骤成为贡献者(请参阅https://clojure.org/dev/dev#_becoming_a_contributor)。

(同时在clojurians slack上询问了也是如此)

我检查了这个https://clojure.atlassian.net/browse/TLOG-28,看来需要的仅仅是类路径上存在新的slf4j 2.0 API。
clojure tools-logging使用了factory# (org.slf4j.LoggerFactory/getILoggerFactory),这个已经被迁移到使用ServiceLoader: https://github.com/qos-ch/slf4j/blob/a5540ad51066b4b15132fdf27ead630519541d35/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java#L107
(我无法对Jira问题进行评论,也不知道特定的tools-logging渠道。)

在我看来,tools-logging与slf4j 2.0一起工作不应做任何事情。
客户只需要在类路径上拥有slf4j 2.0依赖项。
我确实建议将2.0用于开发配置文件,因为1.7x将不再维护。
谢谢,更新了测试依赖项并关闭
...