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

如何在运行时选择log4j2 appender

马飞
2023-03-14

我使用log4j2.9

我在log4j2.xml中配置了文件追加器。

 all_log_appender, device_appender, sql_appender

我在Runtiime找不到任何如何选择appender的例子。

你能给我举个简单的例子吗?

共有1个答案

李安歌
2023-03-14

这可以通过使用内置在log4j2中的路由Appender在配置中完成(不需要html" target="_blank">自定义代码)。

此追加器可以将日志事件路由到一组预定义的追加器,或者在必要时动态添加新的追加器。这个stackoverflow答案有示例和指向其他示例的链接。

手册页有三个示例,但FAQ页(“如何动态写入分离的日志文件?”)有一个示例,该示例使用ThreadContext映射来控制将后续事件(在当前线程中)记录到哪个日志文件。(另请参见StackOverflow上的此示例。)

代替ThreadContext,还可以(参见LOG4J2-1015)基于日志事件标记进行路由,这样应用程序就可以在每个事件的基础上指定将事件路由到哪个文件追加器。有关基于标记路由的示例,请参见StackOverflow答案。

 类似资料:
  • 我看到过各种帖子描述JPA EntityGraph允许在运行时选择图表。我不完全清楚这指的是什么。 出于诚意和尊重,我想参考这篇有用的文章:https://www.baeldung.com/jpa-entity-graph.(大多数JPA用户可能已经看过了。) 文章引用- EntityGgraph允许对我们想要检索的相关持久性字段进行分组,并允许我们在运行时选择图形类型。 并在结论部分再次巩固上述

  • 问题内容: 我正在使用带有注释的Spring Bean,并且需要在运行时选择其他实现。 例如,我需要Windows平台,我需要Linux平台。 目前,我只知道一种可怕的解决方案: 请考虑我仅使用注释,而不使用XML配置。 问题答案: 您可以将bean注入移动到配置中,如下所示: 或者,您可以使用配置文件和,然后用注释(如或)注释您的服务实现,并为您的应用程序提供此配置文件之一。

  • 问题内容: 我在应用程序中有两个主要课程。当我将其打包到一个可运行的jar(使用Eclipse导出功能)时,我必须选择一个默认的主类。 有没有一种方法可以在运行时从jar访问非默认主类? 问题答案: 您可以通过和访问。jar中的默认主类用于通过调用应用程序时。 有关更多详细信息,请参见JAR_(file_format)。在Eclipse中选择主类时,将在其中进行设置:jar文件清单中jar清单的内

  • null 我正在编写一个数据库客户端库,示例使用了一个假设的、不存在的数据库服务器。因此,示例在运行时总是失败,但重要的是示例在语法上是有效的。因此我有上述要求。 如果没有办法做我想做的事情,那么如何选择不让运行特定的文档测试呢?例如,编译并运行一些文档测试,但完全忽略其他一些测试吗?

  • 问题内容: 我有以下课程: 我想做的是确定应用程序已经运行时(即 未 在启动时)将哪个实施注入。 所以理想情况是这样的: 做到这一点的最佳方法是什么? 问题答案: 用和声明实现 然后将它们都注入并使用:

  • 然后再次运行,但它也转到GPU0。 我看了相关的问题,如何选择指定的GPU来运行CUDA程序?但是命令不在CUDA 8.0 bin目录中。除了之外,我还看到其他文章引用了环境变量但这些都没有设置,我也没有找到关于如何使用它的信息。 虽然与我的问题没有直接关系,但使用我能够使应用程序在GPU1上运行,但使用不能在GPU0和1上运行。 我正在一个使用bash shell运行的系统上测试这一点,该系统在