我正在尝试以编程方式配置log4j2,方式与文档(http://logging.apache.org/log4j/2.x/manual/customconfig.html)类似:
ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
builder.setStatusLevel(Level.TRACE);
builder.setConfigurationName("Config");
AppenderComponentBuilder console = builder.newAppender("Stdout", "Console")
.addAttribute("target", ConsoleAppender.Target.SYSTEM_OUT)
.add(builder.newLayout("PatternLayout").addAttribute("pattern", logFormat));
builder.add(console);
builder.add(builder.newRootLogger(Level.DEBUG).add(builder.newAppenderRef("Stdout")));
Configurator.initialize(builder.build());
LogManager.getLogger("foo.bar").debug("TestMsg");
但是,最后的日志消息不会将任何内容记录到控制台。将其更改为error
会记录某些内容。我无法弄清楚跟踪日志中的错误。我错过了什么,为什么不调试日志?
编辑:
在follow: true
上设置ConsoleAppender
(我们在正在运行的情况下更改stdout)并将其添加到最后使其记录:
Configurator.setRootLevel(Level.DEBUG);
但是,它没有使用我们指定的日志格式,它使用简单的转换模式 - 甚至不是默认格式!是否有一些记录器记录我可以打开以解决它为什么这样做 - 状态跟踪记录仅在启动和&amp;关机?