我使用以下代码以编程方式配置我的日志记录配置:
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/