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

e3bfsja2  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(472)

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

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

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

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

我试过了,但没有。

70gysomp

70gysomp1#

当log4j2初始化时,它需要一个配置。默认配置是将所有错误消息记录到控制台,并忽略其他消息。
这通常不是您想要的,您可以通过提供满足您需要的配置来改变这一点。最常用的方法是创建一个文件 log4j2.xml 把这个放到类路径中。配置文件语法在用户手册中有很好的文档记录,其中有很多例子。尤其是附加器和布局上的页面可能会引起兴趣。
log4j2还支持json、yaml和properties格式的配置文件(不同于log4j-1.2格式!),但手册中的大多数示例都是xml。
最后,您可以使用系统属性指定配置文件的位置 log4j.configurationFile ,因此它不必在类路径上。
如果配置有问题,请使用 <Configuration status="trace"> 在配置文件的顶部,将内部log4j2状态消息打印到控制台(使用 WARN 把它关掉。)
从log4j 2.9开始,您可以通过指定系统属性来启用内部状态日志记录 log4j2.debug (没有值)。这有助于排除故障。

相关问题