我需要以编程方式将具有模式布局的控制台appender添加到Root Logger。我之前使用log4j1. x的代码类似于Logger.getLogger(new Appender(控制台、fname、模式布局、“特定模式”)如何将此转换为log4j 2.3.2
Log4j 2.3.2是一个旧版本,缺乏许多新功能,如ConfigurationBuilder API。
但是,您可以通过以下方式构建控制台appender并直接连接到根记录器:
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
final Logger logger = ctx.getLogger(LogManager.ROOT_LOGGER_NAME);
final Layout<String> layout = PatternLayout.newBuilder()
.withConfiguration(ctx.getConfiguration())
.withPattern("some pattern")
.build();
final Appender appender = ConsoleAppender.newBuilder()
.setName("some name")
.setLayout(layout)
.build();
/*
* This is simpler, but it is not API:
*
* logger.addAppender(appender);
*
* Instead we shoud use:
*/
ctx.getConfiguration().addLoggerAppender(logger, appender);
备注:这是当前配置的临时补丁。如果重新加载配置(例如,log4j2.xml文件更改),修改将丢失。
我无法使用logger添加控制台appender。addAppender方法与log4j-over-slf4j 1.7.x依赖。此外,我无法设置特定控制台附加器的目标(即SYSTEM\u OUT/SYSTEM\u ERR)。 我已经初始化了一个控制台appender对象,并试图通过将该引用类型化为Appender来将该引用推送到addAppender方法中。但是在这种情况下,我无法为控制台appe
尽管awsmobile cli具有启用和配置AppSync后端的功能,如: 它很容易以完全不相关的配置告终:它在us-west-2(俄勒冈州)中创建DynamoDB表,即使我的项目位于eu-Central-1(法兰克福)。它是通过默认的“事件”图形模式实现的。毕竟,它不会作为后端功能出现在MobileHub项目控制台上。 现在,我想做的事情是通过控制台向AWS MobileHub项目添加AppSy
我试图将命令提示符中打印出来的信息从JAVA控制台显示到C#。当在JAVA中发出System.out.println时,它可以很好地工作,但是它不能用于logger.info print out。 注意:当我通过windows命令提示符(CMD>java-jar testbed.jar)运行它时,记录器信息会在命令提示符中打印出来。 JAVA来做一个简单的增量和减量数字,当按下按钮进行增量或减量时
我知道:- 但是,createAppender和createLogger是V2.11中不推荐使用的方法。 此外,我还知道ConfigurationBuilder。我已经试用了它,它似乎是为了以编程方式构建配置。我需要从log4j2.xml文件中获得默认配置。并追加新的追加器(带有新的文件名和记录器)。
在log4j1.2中,您只需在运行时获取一个记录器并添加一个appender。例如,这对于测试目的很方便。我们曾经创建一个模拟appender并将其添加到记录器中。随后,我们可以做出不同的断言。 log4j2的等价物是什么? 例如,这个例子展示了其他人是如何添加测试附加器的。 log4j2页面显示了一些关于如何添加附加器的示例。但是,它们将追加器添加到整个上下文中。这似乎不同于为一个特定的记录器添
我的记录器只记录根记录器ServerAppenderV2上的消息,日志文件是正确生成的,当我在root中使用change the level to debug时,我可以在root中定义的两个appender中看到日志,但在文件appenders FileAppender和perfappender中仍然没有日志。 对于以下代码: 下面是我的Logger类和标记: 下面是我的配置log4j2.xml: