gpt4 book ai didi

java - 如何在控制台应用程序中禁用 log4j2 的自动初始化?

转载 作者:行者123 更新时间:2023-11-30 10:25:41 27 4
gpt4 key购买 nike

如何在控制台应用程序中禁用 log4j2 的自动初始化?我知道它可以在 servlet 上下文中被禁用

 <context-param>
<param-name>isLog4jAutoInitializationDisabled</param-name>
<param-value>true</param-value>
</context-param>

但是,如何在控制台应用程序中?我猜:

System.setProperty("isLog4jAutoInitializationDisabled", "true");

我试过了,但没有。

最佳答案

Log4j2 初始化时,需要配置。默认配置是将所有 ERROR 消息记录到控制台,并忽略其他消息。

这通常不是您想要的,您可以通过提供满足您需要的配置来更改它。最常见的方法是创建一个文件 log4j2.xml并将其放入类路径中。配置文件syntax在用户手册中有很多很多例子。特别是 appenders 上的页面和 layouts可能会感兴趣。

Log4j2也支持JSON、YAML和properties格式的配置文件(区别于Log4j-1.2格式!),但手册中的例子大多是xml。

最后,您可以使用系统属性指定配置文件的位置 log4j.configurationFile ,因此它不必在类路径中。

如果您在配置方面遇到问题,请使用 <Configuration status="trace">在配置文件的顶部将内部 Log4j2 状态消息打印到控制台。 (使用 WARN 将其关闭。)

从 Log4j 2.9 开始,您可以通过指定系统属性 log4j2.debug 来启用内部状态日志记录(没有值(value))。这应该有助于故障排除。

关于java - 如何在控制台应用程序中禁用 log4j2 的自动初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com