问题标签 [slf4j-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
112 浏览

java - 在 SpringBoot 应用程序中使用 Java 的简单日志记录外观

我想使用@Slf4j 注释,所以我在我的 pom.xml 文件中导入了这个依赖项

但我有错误无法解析符号Slf4j

0 投票
1 回答
154 浏览

logging - SLF4J 中的自定义级别日志记录

在我的项目中,日志记录工作得很好。使用 Slf4j 进行日志记录。样品如下:

我们使用 log4j2.xml 进行日志记录配置。现在我的要求是制作一个具有 int 值 150 的自定义级别日志“VERBOSE”。我正在努力但似乎很难,或者我不知道 slf4j 是否具有提供自定义级别日志记录的灵活性。请协助。

0 投票
1 回答
903 浏览

apache-kafka - 使用 SLF4j 为 Apache Beam 和 Kafka 客户端配置日志记录

我使用 Apache Beam vs Kafka Clients 来处理我的数据,但是 Kafka Clients 库会产生很多消息,所以它们确实在堆栈跟踪中很混乱,我该如何更改这个包的日志级别?

依赖版本:slf4jVersion=1.7.29,apacheBeamVersion=2.18.0

我已经添加了一个文件log4j.propertiessrc/main/resources/内容如下,但它似乎不起作用

构建.gradle

我想在我的日志中避免的日志消息:

0 投票
2 回答
1361 浏览

java - 使用 SLF4J 简化惰性日志记录

我在 Spring Boot 应用程序中使用 SLF4J 和 Logback。我对使用惰性日志记录很感兴趣,经过一些研究,我想出了这个解决方案。

这按预期工作,如果日志记录级别不匹配,则不会调用方法。

如您所见,我正在创建新对象并一遍又一遍地覆盖 toString 方法。我不想这样做。有一个更好的方法吗?

我正在使用与 Spring Boot 启动器捆绑在一起的 SLF4J 1.7.28 版本。请注意,我更喜欢使用 SLF4J 而不是其他日志记录框架。

我尝试了 slf4j-api 2.0.0-alpha1版本以及slf4j-simple绑定,因为它具有 logger.atDebug.log() 实现。但我无法让它正常工作。

谢谢你。

0 投票
1 回答
121 浏览

logging - 如何使用主机应用程序提供的日志适配器从基于 Akka 的库中进行日志记录?

我正在制作一个小型库——Flow真的是一个——并且想从它的代码中进行一些调试日志记录。该库将在基于 Log4J2 和 Logback 的应用程序中使用。我希望日志记录“刚刚发生”。

我做了什么:

所有库依赖项都是“提供”的:

我读过Akka Logging (Akka docs),但它是 2.4.20 版。2.6有类似的吗?

akka-slf4j为库提供LoggingLoggingFactory类。logger在库中初始化的方式:

但是,不会发生日志记录。控制台输出,在提供 Logback 1.2.3 的主机上运行:

从这些链接之一:

此错误表明在类路径上找不到适当的 SLF4J 绑定。将 slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic.jar 中的一个(也是唯一一个)放在类路径上应该可以解决问题。

如果我添加slf4j-simple到库依赖项,我会得到日志,但它们没有着色。在我看来,我已经修复了库中的日志记录以使用它自己的日志记录实现——而不是我希望的主机。这个对吗?如何正确地做到这一点?

Akka 版本是 2.6.5

0 投票
1 回答
520 浏览

selenium - SLF4J:类路径包含使用 selenium-server 的多个 SLF4J 绑定错误

如何解决错误 Class path contains multiple SLF4J bindings while using selenium-server-4.0.0-alpha-5.jarandgerrit-acceptance-framework-3.1.4.jar

错误堆栈跟踪:

0 投票
1 回答
90 浏览

log4j - 如何使用 log4j-over-slf4j 依赖关系在 Logger 对象中添加控制台 Appender?

我无法使用带有 log4j-over-slf4j 1.7.x 依赖项的 logger.addAppender 方法添加控制台附加程序。此外,我无法设置特定控制台 Appender 的目标(即 SYSTEM_OUT/SYSTEM_ERR)。

我已经初始化了一个控制台 appender 对象,并尝试通过将该引用类型转换为 Appender 来将该引用推送到 addAppender 方法中。但在这种情况下,我无法为控制台附加程序参考设置 Target/WriterLocation(即 SYSTEM_OUT/SYSTEM_ERR)。我使用了下面的代码片段-

ConsoleAppender ca = new ConsoleAppender(); ca.setWriter(new OutputStreamWriter(System.out)); // 此行与 log4j-over-slf4j jar 不兼容 ca.setLayout(new PatternLayout("%-5p [%t]: %m%n")); logger.addAppender(ca);

请帮我解决这个问题。

0 投票
1 回答
1008 浏览

slf4j - SLF4J put 和立即 get 失败

我为 SLF4J MDC 编写了一个小包装器。

起初,在我调用“setId()”之后......我稍后会调用“getId”,它会为空。您可以看到我确实验证了线程名称......理解“线程”是允许 MDC 工作的“魔法”。

所以我在 MDC.put 之后立即做了一个 MDC.get,它返回为空。

???

嘎嘎。

在我的概念验证项目中,我有:

下面的确切版本:

概念验证和“真实”都给了我一个空 MDC.get(又名,我得到“MDC 没有持续存在。这怎么会发生??????”异常。

我能提供的唯一其他线索是我没有巨石。我有一个多模块 gradle 项目。

https://docs.gradle.org/current/userguide/multi_project_builds.html

我正在为我的版本使用变量(在我的根 build.gradle 中定义),所以我在任何模块中都没有不匹配的版本。

附加一个:

好的,所以我知道它为什么返回“null”。它使用混凝土

…………

0 投票
1 回答
553 浏览

java - 速度从 1.7 升级到 2.0

我正在尝试从使用 LogChute 接口的速度 1.7 迁移。在我当前的实现中,我使用 log 方法来获取速度日志级别并比较我们自己的日志级别。请看下面的代码。

根据 apache velocity 2.0 文档,不推荐使用 LogChute,并且 apache velocity 正在使用 SLF4J 进行日志记录。因此,我尝试将 SLF4j-API 和 SLF4J 绑定用作 SLF4J Simple Logger 和 WebApp SLF4J Logger,但无法使用该类,因为我需要将速度日志级别与我们的自定义日志级别进行比较。所有这些都需要在运行时发生。

对于当前速度配置,我遵循以下配置,这与基于 1.7 速度配置作为 services.VelocityService.runtime.log.logsystem.class=our.package.xclassName 调用的自定义类相同。

这是文档的链接(https://velocity.apache.org/engine/1.7/developer-guide.html#configuring-logging

这些都在 2.0 版本中被删除。

有人可以帮我解决这个问题。我正在尝试升级速度。

0 投票
1 回答
2468 浏览

spring-boot - Spring boot + slf4j + log4j + class org.apache.logging.slf4j.SLF4JLoggerContext 不能强制转换为class

我有Spring Boot 2.3.1

  • pom.xml
  • 班级
  • 应用程序属性
  • log4j.properties

我试图找到解决方案,查看了论坛上的类似主题,尝试了各种排除依赖项的选项。

线程“主”java.lang.ClassCastException 中的异常:类 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为类 org.apache.logging.log4j.core.LoggerContext(org.apache.logging.slf4j.SLF4JLoggerContext 和 org .apache.logging.log4j.core.LoggerContext 位于加载程序“app”的未命名模块中)

我还尝试排除一些依赖项

但是又报错了,但是现在不能格式化日志了。

2021-01-13 19:12:15,881 INFO - ++++++++++++++++++++++++TEST+++++++++++++++++++++++++++++ ERROR StatusLogger Unrecognized format specifier [d] ERROR StatusLogger Unrecognized conversion specifier [d] 从转换模式中的第 16 位开始。ERROR StatusLogger Unrecognized format specifier [thread] ERROR StatusLogger Unrecognized conversion specifier [thread] 从转换模式中的位置 25 开始。ERROR StatusLogger Unrecognized format specifier [level] ERROR StatusLogger Unrecognized conversion specifier [level] 从转换模式中的位置 35 开始。

...

ERROR StatusLogger Unrecognized format specifier [n] ERROR StatusLogger Unrecognized conversion specifier [n] 从转换模式中的位置 56 开始。警告:不支持 sun.reflect.Reflection.getCallerClass。这会影响性能。

任何人都可以对如何解决它有任何想法吗?