当前位置: 首页 > 知识库问答 >
问题:

在运行时创建一个自定义appender并将其添加到log4j2

金子平
2023-03-14

我需要一个以编程方式插入的log4j2的自定义appender(我不想更改log4j2.xml,因为我需要默认使用该appender)。对于自定义appender,似乎有一个答案,即如何在log4j2中创建自定义appender?,但是如何在运行ti,e时添加appender呢?

共有1个答案

濮赤岩
2023-03-14

基本上,您需要实例化appender,然后将其插入所需的日志中。在本例中,我使用的是ConsoleAppenderrootLogger

LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
ConsoleAppender consoleAppender = ConsoleAppender.
              createDefaultAppenderForLayout(PatternLayout.createDefaultLayout());
consoleAppender.start(); // this is optional
config.addAppender(consoleAppender);  // this is optional
ctx.getRootLogger().addAppender(consoleAppender);
ctx.updateLoggers();
 类似资料:
  • 我已经浏览了之前关于在运行时添加Log4j2附加器的线程,但没有一个真正适合我的场景。 我们将一个长时间运行的Flink作业打包到一个胖jar中,我们基本上将其提交给一个运行的Flink集群。我们想把错误日志转发给哨兵。很方便,Sentry提供了一个我希望能够使用的Log4j2 appender,但所有让Log4j2工作的尝试都失败了——对此有点疯狂(花了几天时间)。 因为Flink(也使用log

  • 我在这个问题上也有同样的问题 如何使用android中的回收器视图将事件放在日历中 //Event.java 我尝试了很多,但它甚至不工作。我的事件。我要在另一个适配器中使用java。也许在onBindViewHolder中。

  • 我想做一个简单的2D游戏。现在,我想做的所有事情都是显示我的精灵表中的单个精灵(播放器)。因此,我的主类扩展了,我想在上面展示一个舞台和一个播放器。 玩家类包含一个数组,其中包含我从精灵表中获得的单个精灵,方法为。为了在舞台上显示某些内容,您需要一个场景来容纳要显示的对象的或。因此,我尝试将我的播放器添加到场景中,方法是将其附加到StackPane中,称为的实体。这是行不通的。 我不太熟悉使用阶段

  • 这里的 Spring 文档 http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/repositories.html#repositories.custom-implementations 提供了将自定义功能添加到所有存储库或单个存储库的示例,而不是同时添加到两者。 假设我想向所有存储库添加一些自定义函数(使用

  • 问题内容: 我已经构建了自己的自定义react-bootstrap Popover组件: 该组件的呈现方式如下: 现在,我想向组件中添加自定义道具,例如:我的文字,并使用新道具在弹出框中设置一些内容,例如- 但随后我在浏览器中收到此警告: 警告:标签上的未知道具。从元素中删除这些道具。 现在,我想我可以删除零件并逐个插入所有原始道具,而无需自定义道具,但是这样我就失去了“淡入淡出”效果,这也是处理

  • 我想创建一个对象动态,例如在JavaFX中的一个圆。我的代码会像这样。 我现在的问题是如何增加每个圆的独特性。例如,如果我要添加每个圆的不同颜色和大小。我该如何实现呢?请帮忙。