log4j2 相关问题

Log4j 2是Log4j的升级版,Log4j是一个基于Java的日志记录实用程序,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些固有问题。

自定义记录整数值到 java 中的 log4j2 jdbc 附加程序

我正在尝试使用 log4j2 在数据库中记录我的事件。具体来说,我在属性配置文件中使用 log4j2 jdbc 附加程序来实现此目的。 这是我的 log4j2 属性中的附加程序...

回答 2 投票 0

使用 SLF4J 和 Log4J2 时未记录 MDC

我正在尝试在 Wildfly 应用程序中使用 json 格式化程序来记录 MDC。 我希望在设置 MDC 值后在每个日志中看到所有 MDC 键及其值。 我不想用

回答 1 投票 0

Log4j2 配置中的“状态”是什么意思?

我刚刚完成log4j2.xml配置文件的调整,发现了一些我不太明白的东西。 那么是什么? 几乎全部

回答 1 投票 0

Log4j2:将错误级别记录到特定文件中

在我的 log4j2 配置中,我将 AsyncRoot 设置为 INFO,因为我想在文件中记录此级别及更高级别。 但我还想将错误级别记录到特定文件中并在附录中...

回答 2 投票 0

为什么 log4j2 TimeBasedTriggeringPolicy 受到 @Scheduled 的影响

我为log4j2配置了TimeBasedTriggeringPolicy的Policy,希望每天00:00可以将日志文件打包成zip文件。但这并没有发生。 <

回答 1 投票 0

即使日志为空,我可以继续滚动 log4j2 中的文件吗

我有一个java程序,使用在xml配置文件中配置的log4j2来写入日志。 即使日志为空,我可以继续滚动 log4j2 中的文件吗?我需要使用存档日志生成...

回答 1 投票 0

Log4j2 记录器名称转换模式

我正在尝试修剪 Log4j2 Core 的 PatternLayout 中的记录器名称。 记录器名称示例: com.test1.test2.test3.test4.test5.ClassName 预期输出: c.t.t.t.t.test5.ClassName 在文档中我只能...

回答 2 投票 0

为 com.mongodb.internal.diagnostics.logging.SLF4JLogger 设置记录器不起作用

使用 Spring Boot 运行,我得到这样的日志 c.m.i.d.l.SLF4JLogger :使用驱动程序生成的 ID 3 和服务器生成器的连接在数据库“test”上启动命令“insert”...

回答 1 投票 0

如何关闭 com.mongodb.internal.diagnostics.logging.SLF4JLogger?

使用 Spring Boot 运行,我得到这样的日志 c.m.i.d.l.SLF4JLogger :使用驱动程序生成的 ID 3 和服务器生成器的连接在数据库“test”上启动命令“insert”...

回答 1 投票 0

log4j2.xml 未被 STS 拾取

我一直在尝试在 Spring 项目中通过 log4j2.xml 让日志记录与基本配置一起使用。尝试了两天,没有成功。该项目似乎忽略了我的 log4j2.xml 文件并选择...

回答 1 投票 0

如何在 Java JDK 21 中允许对象反序列化?

我正在开发一个易受攻击的 Web 应用程序,我正在将其与 Spring Boot 集成以演示 Log4J 漏洞。我的易受攻击的 Web 应用程序可以在 JDK 1.8 上使用我的漏洞利用程序。然而,

回答 1 投票 0

解决 Log4j2 配置问题:尽管在 log4j2.xml 中添加 @ConverterKeys({"mask"}) %mask,但应用程序服务器中的数据屏蔽失败

我需要解决应用程序日志配置的紧急问题。我们正在尝试使用 log4j2.xml 文件中 Log4j2 的自定义模式转换器 %mask 来实现数据屏蔽。然而...

回答 1 投票 0

Log4j v2 创建日志文件,但不向其中写入任何内容并忽略我的日志级别

问题是我的 Log4J 记录器不会写入文件,尽管它创建了文件(以及目录!),并且启用的级别只是致命错误,尽管我告诉它启用全部。这是我的...

回答 1 投票 0

Log4j2 无法在 WebLogic 12.2.1 中工作

我正在尝试在 WebLogic 12.2.1 下运行的 Web 服务中添加 log4j 日志记录,但不知何故日志记录不起作用。 这是WEB-IN中的log4j2.xml

回答 0 投票 0

在 osx 下的独立 java 应用程序中使用 log4j 2.0 时,log4j2.xml 中的日期变量无法解析

我在我的独立java应用程序中使用log4j 2。 但是,我在 log4j2.xml 配置中的日期变量上遇到了困难。事情还没有得到解决。 这是我的 log4j2.xml 配置文件: &l...

回答 1 投票 0

MDC 中设置的变量在 log4j2 中无法访问

我有一个 spring MVC 项目(不是 springboot )。我正在尝试使用 MDC 添加用于日志记录的 TraceId(MDC.set("X_REQUEST_ID",uuid.randomuuid().tostring())。现在我添加了代码来设置

回答 1 投票 0

如何在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] 相比,没有性能损失。

回答 2 投票 0

如何记录方法的调用者而不是调用 Logger 的方法

给定一个日志记录实用程序类,如何通过该类记录所有内容,而不是为每个类创建一个 Logger 对象? 例如,代替: 导入 org.apache.logging.log4j.LogManager; 导入组织。

回答 2 投票 0

如何在 Spring application.properties 文件中指定带有日期的日志记录文件

我正在尝试在 application.properties 文件中使用logging.file.name来根据日期记录我的应用程序,但我无法获取当前日期。我努力了 logging.file.name=logs/LogFile.%d{yyyy-MM-dd}.lo...

回答 1 投票 0

Log4j2 RoutingAppender 与跨多个线程的 ListAppender

(这是我最初问题的后续问题:Log4j2 Custom Appender in Maven Surefire: possible to Reuse Across Threads?) 我正在尝试对来自 Log4j2 的任何日志记录的输出进行单元测试...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.