如何在log4j2中以编程方式更改Appender布局?

问题描述 投票:4回答:3

以前在log4j 1.x中,我能够在Appender上添加appender.setLayout(),但现在在log4j 2.x中,没有诸如setLayout()这样的方法。如何在log4j2中以编程方式为Appender对象设置布局?

java log4j2
3个回答
2
投票

没有setLayout()方法。您将需要获取当前的配置并在运行时按照documentation中的说明进行更新。


0
投票

您可以通过这种方式添加自己的布局(例如ConsoleAppender):

// rootLoggerConfig you can get from LoggerContext.getRootLogger().get()

String pattern = "%d [%p|%c|%C{1}] %m%n"; // your pattern here

PatternLayout pl = PatternLayout.newBuilder().withPattern(pattern).build();
ConsoleAppender consoleAppender = ConsoleAppender.createDefaultAppenderForLayout(pl);

rootLoggerConfig.addAppender(consoleAppender, Level.getLevel("INFO"), filter);

// filter - your implementation of 
// org.apache.logging.log4j.core.filter.AbstractFilter

0
投票

如果偶然,您只是想更改用于各种日志事件的模式,则可以使用模式选择器。否则,更好地了解用例可能会提供其他选择。实际上,我很想知道您为什么要以编程方式更改布局,因为很少有人要求这样做。

© www.soinside.com 2019 - 2024. All rights reserved.