log4j2 相关问题

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

ThreadContext.put() 和 MDC.Put() 有什么区别?

我想知道ThreadContext.put和MDC.put之间的区别,因为我相信两者执行相同的操作。

回答 2 投票 0

使用 Log4j 的 Json 格式消息

我正在尝试让 log4j 以 json 格式记录具有特定字段的消息。日志记录必须遵循一个规范。 log_fmt.json { “姓名”: { "$resolver": "地图&quo...

回答 1 投票 0

如何在运行时以编程方式添加 Log4J2 附加程序?

是否可以使用 XML 配置中的规范以编程方式添加 Log4J2 附加程序? 我计划在 log4j2.xml 中定义所有内容,然后根据情况选择附加程序...

回答 6 投票 0

将 Spring boot WS 部署到 JBoss EAP 8 时遇到“协议 vfs 尚未启用为允许的协议”错误

我正在开发一个 Spring Boot(3.3.5) Web 服务,使用 log4j2 作为我的日志库。我从 spring 初始化程序生成了一个 spring boot 项目,排除了从 web 模块到 exc 的日志记录...

回答 1 投票 0

Log4j2 JsonTemplateLayout 问题

我正在尝试为此处描述的 log4j2 设置 json 日志记录: https://logging.apache.org/log4j/2.x/manual/json-template-layout.html 但是,输出的格式与我的期望不符。 ...

回答 1 投票 0

Log4j2 asyncLogger 在应用程序日志文件中缺少日志事件

我在我的Java应用程序中使用Log4j2的AsyncLogger,该应用程序部署在Kubernetes环境上。该应用程序还配置了 New Relic Java 代理,我可以看到日志事件…

回答 1 投票 0

java.lang.NoSuchMethodError:org.apache.logging.log4j.util.PropertiesUtil.getStringProperty()

我在启动 Tomcat 服务器时遇到以下异常。 这似乎是一个 log4j 异常。我刚刚将 Struts 版本从 2.5.20 升级到 2.5.22。 Log4j-api-2.12.1 和 log4j-core 是 2.13.2。

回答 2 投票 0

Struts 2.5.22 启动时出现异常

我在启动 Tomcat 服务器时遇到以下异常。 这似乎是一个 log4j 异常。我刚刚将 Struts 版本从 2.5.20 升级到 2.5.22。 Log4j-api-2.12.1 和 log4j-core 是 2.13.2。

回答 2 投票 0

JsonLayout最大消息长度?

log4j2的JsonLayout中有没有办法限制message值的字符?当前的配置是这样的 log4j2的JsonLayout中有没有办法限制message值的字符?目前的配置是这样的 <Console name="CONSOLE_APPENDER" target="SYSTEM_OUT"> <BurstFilter level="INFO" rate="2" maxBurst="10"/> <JsonLayout compact="false" eventEol="false" stacktraceAsString="true"> <KeyValuePair key="timestamp" value="$${date:yyyy-MM-dd'T'HH:mm:ss.SSSZ}" /> <KeyValuePair key="BuildNumber" value="$${ctx:BuildNumber:-}"/> </JsonLayout> </Console> 据说 JsonLayout 已被弃用,所以我们使用 JsonTemplateLayout 来代替

回答 1 投票 0

使用 sfl4j 的库不遵循 log42.xml 配置

我在 Java 应用程序中使用 kafka-clients 库,并且日志没有附加到我在 log4j2.xml 中指定的 kafka 日志中。但是,org.springframework.kafka 日志是

回答 1 投票 0

Spring Boot 的 log4j2 中没有为组件属性提供 type 属性

我已经实现了一个简单的应用程序,用于将日志流式传输到apache kafka。在生产者中,我已经实现了 log4j2.xml 文件用于配置,现在我必须将 .xml 文件转换为属性...

回答 1 投票 0

从执行的 jar 中过滤 Log4j 中的控制台异常

我正在运行一个我的世界服务器,一些插件不断向控制台发送垃圾邮件(因此使其毫无用处),内容如下: com.mojang.brigadier.exceptions.CommandSyntaxException 我想摆脱

回答 1 投票 0

Log4j2:是否可以实现 StrLookup 重新计算每个日志事件的返回值?

我想使用 StrLookup 接口将变量的当前值打印到 log4j2 记录的每条消息中。我想最简单的方法是直接将其插入到

回答 1 投票 0

Log4j 从 2.23.1 更新到 2.24.0/1 -> 日志记录消失了

我有一个又大又旧的遗留项目,我们非常痛苦地更新到 log4j 2,并且使用了很多桥梁。 我有一个又大又旧的遗留项目,我们非常痛苦地更新到 log4j 2,并且使用了很多桥梁。 <!-- LOGGING --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j2-impl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> slf4j版本是2.0.16 log4j 2.24.0 的发行说明中是这样的文字: 桥梁 JUL-to-Log4j API 和 Log4j 1-to-Log4j API 将不再 可以修改Log4j Core默认的配置。如果这样的话 需要某个功能,必须显式启用它。 从 2.23.1 更新到 2.24.0 或 2.24.1 后,日志记录消失了。 我在文档中没有找到任何有关如何启用此桥接功能的提示。 注意: log4j-1.2-api 和 log4j-jul 的“桥接”功能在 2.24.0 中并未禁用。这些桥仍然开箱即用,可将使用 Log4j 1 或 java.util.logging 编写的日志语句转发到 Log4j 2 API。 被禁用的是使用这些旧版 API 加载和修改日志记录实现的配置的能力。其背后的基本原理是,许多legacy库通过调用j.u.l.Logger.setLevel()或org.apache.log4j.PropertyConfigurator.configure()等方法来破坏用户配置。由于无法修改这些遗留库,因此桥接器的“配置”部分成为选择加入。 问题的可能原因 许多应用程序和库(可能包括您的应用程序和库)都包含与此类似的代码片段: org.apache.log4j.PropertyConfigurator.configure( Main.class.getClassLoader().getResourceAsStream("log4j.properties")); 自从 Log4j 1.0 的第一个稳定版本已经自动加载 log4j.properties 文件并允许用户使用 log4j.configuration 系统属性指定备用位置以来,从未需要过这样的代码片段。此类片段应被删除并替换为以下选项之一: 以本机 Log4j 2 Core 配置格式之一编写配置文件,并将其放置在类路径上的标准位置之一中。这是推荐的方式。 以 Log4j 1 格式编写配置文件并将 log4j.configuration 系统属性指向它。如果您有很多用户并且不想强迫他们使用 Log4j 2 格式,则此选项可能很有用。如果您是唯一配置日志记录的人,则更容易切换到您选择的本机格式。 以 Log4j 1 格式编写配置文件并将 log4j1.compatibility 系统属性设置为 true。 直接在代码中使用 o.a.l.l.core.config.Configurator。 如果您确实想保留代码片段(我不建议这样做),您应该将 log4j1.compatibility 系统属性设置为 true。

回答 1 投票 0

当日志级别设置为 DEBUG 时,aws sdk java 2.x 正在打印必要的文件内容

我们有一个 quarkus 应用程序,它公开 api 端点以接收包含文件的请求并将文件上传到 S3 存储桶。 当应用程序根日志级别设置为 DEBUG 且请求为

回答 1 投票 0

限制 log4j 中的最大消息大小没有效果

我已经阅读了这个问题Limit max message size in log4j2 pattern。 我使用 %.-1000m 来限制消息事件中的字符数。 由于某种原因,这没有效果。 我已经读过这个问题Limit max message size in log4j2 pattern。 我使用 %.-1000m 来限制消息事件中的字符数。 由于某种原因,这没有效果。 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Properties> <Property name="log-path">${sys:root}/var/output/logs</Property> </Properties> <Appenders> <Socket name="ApplicationTcp" host="localhost" port="5170" ignoreExceptions="false"> to reduce logging volume. --> <Pattern>{ "timestamp": "%d{ISO8601}", "logger": "%c","threadName": "%t"%notEmpty{, "requestId": "%X{RequestId}"}%notEmpty{, "message": "%enc{%.-1000m{nolookups}}{JSON}"}%notEmpty{, "exception": "%enc{%ex{full}}{JSON}"} }%n</Pattern> </PatternLayout> </Socket> ... </PatternLayout> </Socket> </Appenders> 我尝试更改 %m 的各种值,但没有效果。 我在本地测试了您的模式(使用版本2.24.1)并且%.-1000m工作正常!你计算的尺寸正确吗?这仅限制“消息”键的大小(例外情况,通常较长,不受限制)。该限制在 JSON 编码之前应用,因此有效字符数可能会更长。 备注:即使您的示例正确运行(假设您将 alwaysWriteExceptions 设置为 false),您也应该考虑切换到 JSON 模板布局。 Pattern Layout 的目的不是输出结构化格式,而是文本。在某些您没有转义的字段(例如线程名称)中,一个简单的LF将会破坏您的输出。而不是玩火: 将 log4j-layout-template-json 添加到您的依赖项,如 Usage, 中所述 使用等效的 JTL 配置并将 maxStringLength 配置属性 设置为您喜欢的值: <JsonTemplateLayout maxStringLength="500" eventTemplate=' { "timestamp": { "$resolver": "timestamp", "pattern": { "format": "yyyy-MM-dd&apos;T&apos;HH:mm:ss.SSS&apos;Z&apos;", "timeZone": "UTC" } }, "logger": { "$resolver": "logger", "field": "name" }, "threadName": { "$resolver": "thread", "field": "name" }, "requestId": { "$resolver": "mdc", "key": "requestId" }, "message": { "$resolver": "message" }, "exception": { "type": { "$resolver": "exception", "field": "className" }, "message": { "$resolver": "exception", "field": "message" }, "stackTrace": { "$resolver": "exception", "field": "stackTrace" } } }'/>

回答 1 投票 0

Apache Log4j 2.17 版本:错误 StatusLogger 重新配置失败:在“null”中的“null”处找不到“277050dc”的配置

我在我的java项目中使用Apache Log4j,在gradle中: API“org.apache.logging.log4j:log4j-api:2.17.0” API“org.apache.logging.log4j:log4j-core:2.17.0” 我更新了 Log4j 版本...

回答 2 投票 0

(带有 Log4j2 的 Springboot Gradle,可执行 Jar)无法找到或加载主类

当我使用 java -jar .\QuartzScheduler-0.0.1-SNAPSHOT.jar 执行 jar 时遇到以下错误 错误:无法找到或加载主类 com.quartz.QuartzSchedulerApplication 原因是:...

回答 1 投票 0

登录Log4j2 NoSQL MongoDB Appender前如何修改MongoDB文档?

我使用 Log4j2 和 MongoDB NoSQL 附加程序将日志发送到 MongoDB 数据库。附加器工作正常,日志作为文档存储在 MongoDB 中。不过,我想

回答 1 投票 0

无法解析Android中的log4j配置

我正在尝试在android中实现log4j,在gradle中使用v2.24.1依赖项: 实现 'org.apache.logging.log4j:log4j-api:2.24.1' 实现 'org.apache.logging.log4j:log4j-core:2.24....

回答 1 投票 0

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