Simple Logging Facade for Java(SLF4J)用作各种日志框架的简单外观或抽象层。如果您尝试为应用程序配置日志记录,还请包含您正在使用的实际日志记录框架的标记。
为 com.mongodb.internal.diagnostics.logging.SLF4JLogger 设置记录器不起作用
使用 Spring Boot 运行,我得到这样的日志 c.m.i.d.l.SLF4JLogger :使用驱动程序生成的 ID 3 和服务器生成器的连接在数据库“test”上启动命令“insert”...
如何关闭 com.mongodb.internal.diagnostics.logging.SLF4JLogger?
使用 Spring Boot 运行,我得到这样的日志 c.m.i.d.l.SLF4JLogger :使用驱动程序生成的 ID 3 和服务器生成器的连接在数据库“test”上启动命令“insert”...
java.lang.ClassNotFoundException:ch.qos.logback.core.util.StatusListenerConfigHelper
此错误背后的原因可能是什么? 我们什么时候会收到这个错误? slf4j jar 已经在包中 java.lang.NoClassDefFoundError: ch/qos/logback/core/util/StatusListenerConfigHelper ...
我正在将 @Slf4j 注释与 SimpleLogger 一起使用。我在 simplelogger.properties 中定义了属性,如下所示: org.slf4j.simpleLogger.defaultLogLevel=INFO org.slf4j.simpleLogger.showDateTime=true 组织。
我在 glassfish 3.1.2 服务器上运行的 Java EJB 项目中使用 org.slf4j.Logger。 导入 org.slf4j.Logger; 导入 org.slf4j.LoggerFactory; 公共类主{ 私有静态最终记录器
如何在log4j2-spring.xml中设置Log Pattern来记录类方法和行
我正在尝试设置日志模式以打印日志文件中的类方法和行。以下是我的配置。它与控制台一起工作正常,但与异步不工作 我正在尝试设置日志模式以打印日志文件中的类方法和行。以下是我的配置。它可以与控制台一起使用,但不能与异步一起使用 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <Properties> <Property name="LOG_PATTERN" value="%d [%thread] [%-5level] [%class{36}.%M %L] [Content-Id:%X{contentId}] [Request-Id:%X{requestId}] [%c{1.}] - %msg%n" /> <Property name="LOG_DIR" value="logs" /> <Property name="SYSTEM_FILE" value="application.log" /> </Properties> <Appenders> <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true"> <PatternLayout pattern="${LOG_PATTERN}" /> </Console> <Async name="Async"> <AppenderRef ref="FileAppender" /> </Async> <RollingFile name="FileAppender" fileName="${LOG_DIR}/${SYSTEM_FILE}" filePattern="${LOG_DIR}/${SYSTEM_FILE}-%d{yyyy-MM-dd}-%i.log"> <PatternLayout> <Pattern>${LOG_PATTERN}</Pattern> </PatternLayout> <Policies> <SizeBasedTriggeringPolicy size="10MB" /> </Policies> <DefaultRolloverStrategy max="100" /> </RollingFile> </Appenders> <Loggers> <Logger name="com.myproject" level="debug" additivity="false"> <AppenderRef ref="ConsoleAppender" /> <AppenderRef ref="Async" /> </Logger> <Root level="info"> <AppenderRef ref="ConsoleAppender" /> <AppenderRef ref="Async" /> </Root> </Loggers> 我正在使用这个 [%class{36}.%M %L] 模式来记录类方法和行。 感谢您的支持。 在 Java 中检索调用者位置是一项昂贵的操作。它总是需要某种堆栈遍历。 如果一切都是同步的,Log4j 会在需要时延迟检索位置。但如果追加器或记录器是异步的,则必须在跳转线程之前检索位置。对于异步元素,这会使日志记录速度减慢 5 到 20 倍。这就是为什么在这些情况下位置默认被禁用。 您可以使用 includeLocation 属性启用位置: 对于异步附加程序使用: <Async name="Async" includeLocation="true"> <AppenderRef ref="FileAppender" /> </Async> 对于异步记录器(需要额外的依赖项,参见文档)使用: <AsyncLogger name="com.myproject" level="DEBUG" additivity="false" includeLocation="true"> <AppenderRef ref="ConsoleAppender" /> </AsyncLogger> 另一种解决方案(如果您使用的是 Maven)是使用最近发布的 log4j-transform-maven-plugin,它在编译时计算位置,因此不再需要运行时查找并且位置始终可用。只需将其添加到您的 POM 文件中(参见文档): <build> [...] <plugins> <plugin> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-transform-maven-plugin</artifactId> <version>0.1.0</version> <executions> <execution> <goals> <goal>process-classes</goal> </goals> </execution> </executions> </plugin> </plugins> [...] </build> 免责声明:我是log4j-maven-transform-plugin的主要作者。 作为 Piotr 答案的替代方案,我开发了一个插件,能够在构建时检索类和行号并通过 SLF4J 的 MDC 记录它: slf4j-caller-info-maven-插件 您只需: 添加到pom.xml: <build> <plugins> <plugin> <groupId>io.github.philkes</groupId> <artifactId>slf4j-caller-info-maven-plugin</artifactId> <version>1.1.0</version> <executions> <execution> <goals> <goal>inject</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 在您的 %X{callerInformation} 中的任何位置包含 log4j2-spring.xml,在您的示例中: ... <Pattern>%d [%thread] [%-5level] [%X{callerInformation}] [Content-Id:%X{contentId}] [Request-Id:%X{requestId}] [%c{1.}] - %msg%n</Pattern> ... 这同样适用于同步和异步日志记录。 由于该插件在构建期间评估类和行号,因此与 Log4J 的 [%class{36}.%M %L] 相比,没有性能损失。
升级到 SLF4J v2/Logback 后不再支持 LoggerContextListener 订单建立
我将尽力解释这一点,但它相当复杂。我从事的项目希望人们能够使用 java 配置文件和属性覆盖 logback.xml 设置。 例如...
使用@Slf4j注解创建Logger时如何模拟Logger?
我有一个带有@Slf4j注释的类。 我尝试编写一个测试并模拟记录器,但它不起作用。 @RequiredArgsConstructor @Slf4j 公共抽象类ExampleClass { 受保护
org.slf4j.helpers.NOPLoggerFactory 无法转换为 ch.qos.logback.classic.LoggerContext
当我在maven(m2e)中使用logback时,出现以下错误。环境:JBOSS 7.1.1,maven,eclipse。但如果我只是作为主类单独运行,它就可以正常工作。我不明白为什么我会......
logback.groovy 配置在 groovy 更新后不起作用
进行项目更新时,我们将 java (gradle) 项目的 groovy 依赖项更新到版本 4.0.4。然而现在,我们的 logback.groovy 配置不再起作用。 问题是该应用程序...
当进入@Test方法时,SpringApplication日志不显示
我目前正在设置 SpringBoot 测试,我想查看应用程序运行时的日志输出。 然而,当 @Test 方法开始执行时,应用程序没有任何日志......
如何使用 slf4j 将 REST 错误与日志条目关联起来?
在后端代码中,当 REST 端点方法产生异常时,端点应返回具有适当 http 错误状态的有效负载,例如 500。Payl...
将 org.slf4j.MDC 与 Netty 通道一起使用?
我想做的本质上是如何将MDC与线程池一起使用?是在问,但是是用 Netty。 我想要每个通道关联的 MDC 信息。 Netty 有哪些选项?如果我需要...
我们的应用程序使用, 对于普通日志记录 (.log):log4j2 由 log4j-core.jar、log4j-api.jar、log4j2-extensions.jar 支持 对于控制台日志记录(.out):log4j(1.2),因为我们有使用l的jboss...
我将Struts jar升级到2.5.10.1。但我收到以下错误。最初我有 Log4J 2.5 jar,然后将其迁移到 Log4j 2.7。 严重:启动过滤器 struts2 时出现异常 java.lang.
在我的项目中,我使用 slf4j 进行日志记录。 如果我包含对 logback-classic = "1.2.13" 或更早版本的依赖项,我会收到一条错误消息,指出没有找到 SLF4J 提供程序,并且它是默认的...
我想使用 Lombok @Log 或 @Slf4j 但当我创建时: @日志 公开课测试{ 公共测试(){ log.error("这里出了点问题"); } } 在日志中,我没有错误方法。我...
我为我的一个批处理任务开发了一个Java Springboot应用程序。我将使用该应用程序的 jar 和 shell 脚本。 Shell 脚本将手动执行...
多个 SLF4J 绑定 activemq-all-5.6.0.jar 出错
当我升级到activemq-all-5.6.0时 我在服务器启动期间收到此错误 SLF4J:类路径包含多个 SLF4J 绑定 我使用 activemq-all-5.5.1 时没有这个问题 正在检查...
我正在 Java 中使用 SQLite 创建费用跟踪器,在将 JDBC 和 SLF4J 添加到项目类路径后,出现此错误; 找不到适用于 jdbc:sqlite:expenses.db 的驱动程序 我已经确认了