gpt4 book ai didi

java - SLF4J,通用日志记录,控制台输出

转载 作者:行者123 更新时间:2023-11-29 06:45:58 24 4
gpt4 key购买 nike

我有这个第 3 方库:

  • slf4j-api-1.5.5.jar
  • slf4j-jdk14-1.5.5.jar
  • jcl-over-slf4j-1.5.5.jar

我想针对这个库编写一些测试并查看它的日志输出,我不想再添加任何日志记录库(没有 log4j 或其他任何东西)。

我知道 SLF4J 和 Common Logging 都是日志记录抽象,所以我可能需要编写自己的简单具体记录器(或者可能不需要,因为 jcl-over-slf4j 包含 org.apache.commons.logging.impl.SimpleLog?) .如果是这样,我应该实现什么接口(interface),更重要的是,我如何设置 SL4J/Common Logging 以在我的测试中使用我的记录器?我读了SLF4J docs that I have to modify the StaticLoggerBinder class ...这真的意味着我实际上必须下载 SLF4J 源代码、修改类并重新编译它吗?

最佳答案

我们使用 SLF4J。它非常有用,但有几个 jar 的名称令人困惑,开始时并不清楚哪些不兼容。

SLF4J 是您用于记录代码的 API(例如 log.info("blah")。但是,SLF4J 没有配置方面的内容。在运行时您添加 一个 jar 到将 API 绑定(bind)到“真实”日志子系统的类路径。如果你想使用 Log4J,请添加 slf4j-log4j.jarSimple or JDK 的 StaticBinder jar,或 Logback。您可以像通常没有 SLF4J 的情况那样配置任何这些日志记录实现。

有几个SLF4J modules可用于将使用 Log4J、Apache Commons Logging 和 java.util.logging 的 API 编写的日志语句重定向到 SLF4J。这允许您为所有这些分散的实现设置单个日志记录配置。 (如果您有直接绑定(bind)到任何遗留日志记录框架的库,这对于避免同时配置 Log4J 和 JUL 非常有用。)

SLF4J legacy page深入解释这些概念。哎呀,甚至还有a module将 Sysout.out/err 重定向到 SFL4J。

为了更直接地回答您的问题:确定您可以编写自己的日志记录实现以在 SLF4J 下运行;但这样做的唯一原因是因为您已经被锁定在一些本土的 craptastic 日志记录框架中。

关于java - SLF4J,通用日志记录,控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4911826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com