问题标签 [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.
java - 如何在 slf4j 中格式化异常?
从我在网上找到的许多示例、文档和此处的堆栈溢出中,在 slf4j 中连接字符串的正确方法是使用内置的字符串格式。
例如 :
我也尝试了不格式化,它产生了相同的结果:
出于某种原因,这对我不起作用,我不知道我错过了什么。如果我们传递一个对象,我们是否使用不同的格式?
上面的示例正在打印以下日志消息:
而不是我使用常规连接时收到的预期消息:
或者当我手动调用 .toString()
根据 Sonar 的说法,最后一个选项不正确,因为:
因为 printf 样式的格式字符串是在运行时解释的,而不是由编译器验证的,所以它们可能包含导致创建错误字符串的错误。此规则在调用 java.util.Formatter、java.lang.String、java.io.PrintStream、MessageFormat 和 java.io 的 format(...) 方法时静态验证 printf 样式格式字符串与其参数的相关性.PrintWriter 类和 java.io.PrintStream 或 java.io.PrintWriter 类的 printf(...) 方法。
AppException 类如下:
我正在构建我的记录器,如下所示:
我正在使用slf4j-api 1.7.22
log4j2 - 一旦用户编辑日志文件,将停止将 tomcat 日志附加到 catalina.log
Tomcat 9 将其日志附加到 catalina.log 很好。由于 catalina.log 包含太多内容,为了调试我的应用程序,我只需要新鲜的日志。
所以我从日志文件中删除了所有行并保存了它。但在那之后不久,tomcat 停止向 catalina.log 写入日志,直到我再次重新启动我的 tomcat 服务器。
重新启动后,它再次正常工作,如果我再次删除行,也会发生同样的情况。我正在使用配置为使用 log4j2 实现的 slf4j。这是一个 Spring Boot 应用程序。Log4j2 是使用 xml 文件配置的。xml 文件与此线程答案中的xml 文件相同。
如何在不中断tomcat的情况下删除日志内容?
谢谢你。
java - slf4j 日志不在 server.log 文件中打印,而是在控制台上打印 - wildfly
我有satndalone.xml
日志配置,并配置pom.xml
了slf4j
依赖项。使用lombok.extern.slf4j.Slf4j
api annotations( @Slf4j
) 登录 java 类。
server.log
问题是使用此 Slf4j 的日志正在控制台上打印,但不在wildfly server
.
我已经给出了日志配置standalone.xml
(以及logging.properties
其配置值将来自standalone.xml
)和日志配置pom.xml
java类中的记录器:
在 Wildfly 服务器中从standalone.xml 记录配置:
日志记录属性:
pom.xml
当我配置standalone.xml
<console-handler>
log <level>
toERROR
和<periodic-rotating-file-handler>
log <level>
to 时TRACE
,我希望我的 java 代码中 slf4j 的调试日志log.debug("authenticateUser = " + currentUser);
打印在server.log
文件中,但这是在控制台上打印的。
2019-01-04 DEBUG [default task-8] (AuthenticateABC.java:98) - authenticateUser = APPUSER
我尝试了几种日志级别和处理程序的组合,但仍然没有运气,不知道出了什么问题。
java - Velocity 2.0 迁移 LogChute 替换
我正在尝试从 1.7 迁移到 Velocity 2.0。在阅读了一些文档之后,我看到 Velocity 现在已经转移到 SLF4j API 进行日志记录。现在我不是如何使用 SLF4j 的专家,但由于它有一些文档,我相信我会弄明白的。
我有一个实现 LogChute 接口的类。在阅读了一些关于新日志框架的信息后,将:
是合适的替代品吗?我只想知道我一开始的分析是否正确,然后再把它弄错了。
java - 如何使用 slf4j 登录公共共享库?
我正在编写一个公共共享库,并希望让 slf4j 日志记录来打印一些日志,而不依赖于特定的实现,以便库的用户可以使用他们自己的日志记录框架。
但是我收到“未指定 slf4j 提供程序”的警告。如何在不依赖于具体实现的情况下拥有带有日志记录的公共图书馆。
java - 没有实现时如何获取 slf4j 控制台输出?
我们有许多“父”(或“库”)项目。他们在类路径中只有 slf4j-api,但没有像 logback 这样的实现。
我经常想写一个快速的临时 main 方法来测试一些东西,并得到
如何在不添加日志记录实现依赖项的情况下获得输出?
log4j2 - 将 commons-logging 连接到 slf4j-api
想知道我应该包含的依赖关系,以将 commons-logging 连接到 slf4j-api。
通过添加以下内容,我的构建成功:
但无法启动我的服务:( 获取 java.lang.ExceptionInInitializerError ... 原因:org.springframework.beans.factory.CannotLoadBeanClassException
java - 使用 slf4j API 的 Log42 json 日志记录
我正在尝试使用https://logging.apache.org/log4j/2.x/manual/layouts.html#JSONLayout中记录的 log4j2 找出 JSON 日志记录
一切正常,除非我试图通过使用 SLF4J 记录器对象设置objectMessageAsJsonObject=true将对象记录为 json。SLF4j 记录器只是忽略该对象。而当我使用 org.apache.logging.log4j.Logger 的实例时,它可以工作。
此功能(通过 JSON 布局将对象记录为 json)已在 Log4j2 中添加,带有 github 问题https://github.com/apache/logging-log4j2/pull/141
通过创建 org.apache.logging.log4j.message.ObjectMessage 的新实例并传递给 SLF4J 来尝试,但看起来它只是忽略了它。
//这不起作用
//这有效
更多细节可以在下面的代码部分中找到。
pom.xml
log4j2.xml
要记录为 json 的用户对象
JUnit
预期(使用 SLF4J 记录器):
实际(使用 SLF4J 记录器):
预期(使用 LOG4J 记录器):
问题
- 是否可以使用 SLF4J 记录器使用 log4j2 JSON 布局记录对象?如果是这样,任何示例都会有所帮助。
- 有没有更简单的方法可以将瞬间更改为人类可读的日期和时间戳格式?
java - 如何在 SLF4J 中替换 MarkerIgnoringBase
我们的代码库中有一些旧代码扩展了MarkerIgnoringBase
. 由于我们正在迁移,所以我在 maven 中添加了依赖项2.0.0-alpha1
。
但是我看到的 MarkerIgnoringBase 类已被弃用。只是想知道这个类是否有任何直接的替代品,如果不是直接的,或者至少是我可以使用的远程类似的东西。我尝试了它的一些子类,但它们似乎完全不同。
此外,我能找到的文档很少,说明这已被弃用以及改用什么。