当前位置: 首页 > 面试题库 >

以编程方式更改Log4j2中的日志级别

潘弘扬
2023-03-14
问题内容

我对以编程方式更改Log4j2中的日志级别感兴趣。我尝试查看他们的配置文档,但似乎没有任何内容。我也尝试在包中查找:org.apache.logging.log4j.core.config,但其中的任何内容看起来都没有帮助。


问题答案:

根据log4j2 2.4版常见问题进行编辑

您可以使用Log4j Core中的Configurator类设置记录器的级别。 但是请 注意,Configurator类不是公共API的一部分。

// org.apache.logging.log4j.core.config.Configurator;
Configurator.setLevel("com.example.Foo", Level.DEBUG);

// You can also set the root logger:
Configurator.setRootLevel(Level.DEBUG);

资源

编辑以反映Log4j2 2.0.2版中引入的API中的更改

如果您希望更改根记录器级别,请执行以下操作:

LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); 
loggerConfig.setLevel(level);
ctx.updateLoggers();  // This causes all Loggers to refetch information from their LoggerConfig.

这是LoggerConfig的Javadoc。



 类似资料:
  • 我对以编程方式更改log4j2中的日志级别感兴趣。我试着查看了他们的配置文档,但似乎没有任何内容。我还试着查看了这个包:,但里面也没有什么有用的东西。

  • 以编程方式更改我的附加程序的日志级别,或者受到其他来源的影响。 亲爱的社区。 Log4J2版本为:2.12。0 我的应用程序正在使用log4j2。xml,日志级别设置为INFO。我的应用程序也在读取另一个配置文件,我想在其中为我的用户设置日志级别,例如DEBUG。 当应用程序初始化时(从log4j2.xml),我想将all的级别更改为DEBUG from second source作为示例。所以我

  • 我正在使用一个第三方库,其来源我无法访问。这个库在错误级别上做了很多日志记录。它生成的这些错误级日志事件很有趣,但我们不认为它们是错误级事件。

  • 问题内容: 我有以下logback.xml文件: 现在,在发生特定事件时,我想以编程方式将root记录程序的级别从 debug 更改为 error 。我不能使用变量替换,这是我必须在代码内执行的操作。 如何做呢 ?谢谢。 问题答案: 试试这个: 请注意,您还可以告诉logback定期扫描您的配置文件,如下所示:

  • 我在代码中声明记录器如下: 我希望能够在运行时以编程方式更改日志记录器的日志级别。我曾尝试通过LogManager在存储库中迭代日志记录者,但它只将新的日志级别应用于代码中实例化的日志记录者。如果创建了新的记录器实例,则它不会使用新的日志级别。我的要求是,我的web应用程序中的日志级别需要通过管理GUI进行配置,并且这个新的日志级别需要应用于我代码中的所有记录器(不包括第三方库日志记录,例如JSF

  • 我已经将ApacheJena库包含到我的Java项目中,并且我正在使用ApacheLog4J2作为我的记录器。我还包括了用于从log4jv1映射的log4j-1.2-api和log4j-slf4j-impl依赖项。x和SLF4J(分别) 但是,我无法更改Jena的日志记录级别 我尝试在log4j2中设置它。xml(我在项目中使用的内容): 我甚至尝试添加一个log4j。属性文件: 没有成功 是否有