java - [Log4j2] : Programmatically turn off logging for specific Java packages

标签 java logging log4j2

我使用以下代码以编程方式配置我的日志记录配置:

 public static void configureLoggers() {
  ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();

  builder.setStatusLevel(Level.DEBUG);
  builder.setConfigurationName("ConfigName");

  AppenderComponentBuilder consoleAppenderBuilder = builder.newAppender("Stdout", "CONSOLE");
  consoleAppenderBuilder.add(builder.newLayout("PatternLayout").addAttribute("pattern", "%m%n"));

  builder.add(consoleAppenderBuilder);

  RootLoggerComponentBuilder rootLoggerBuilder = builder.newRootLogger(LEVEL.DEBUG);
  rootLoggerBuilder.add(builder.newAppenderRef("Stdout")).addAttribute("additivity", true);
  builder.add(rootLoggerBuilder);

  LoggerContext.getContext(false).start(builder.build());
 }

我需要关闭项目中特定 java 包的日志记录;就像org.glassfish。我该怎么做?

最佳答案

假设 org.glassfish 记录器使用类名称作为记录器名称来获取其记录器,那么您只需使用“org.glassfish”作为记录器名称将另一个记录器添加到您的配置中,然后将其设置为您想要的任何级别想要它过滤。如果您未指定 AppenderRef 并将其设置为可加性“true”(默认值),则事件将自动转到根记录器的附加程序。

关于java - [Log4j2] : Programmatically turn off logging for specific Java packages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065251/

相关文章:

java - 全局 log4j2-test.xml 配置

java - Log4J2 以编程方式读取属性文件时不记录任何内容

java - DDD : naming convention for Representation Layer and Domain Layer classes

java.lang.ClassNotFoundException : javax. servlet.jsp.tagext.Tag

java - 比较 2d int 数组与字符的最佳方法?

c++ - 使用 cmake 错误链接 boost 日志

java - 如何验证 Json 属性(键)名称?

python - 如何打印 python 日志记录模块使用的当前日志记录配置?

java - 错误 : "setFile(null,false) call failed" when using log4j

java - log4j :WARN No appenders could be found for logger (org. springframework.web.filter.CharacterEncodingFilter)。使用 log4j2