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

自定义将管理记录器消息的追加器

汝臻
2023-03-14

我想创建三个追加器:文件、控制台和数据库。此外,我还在数据库中存储了三个变量:info、error和warn,它们的值对应于上面的一个追加器。

Logger.info ("bla bla bla")

带有登录:

1.我需要创建一个完整的DBAppender类(如下所示),因为我不想将信息存储在三个不同的表中(只存储在一个表中)。

2.由于有了过滤器,捕获数据库的值以获取信息似乎很简单。因此,我可以在每个appender中包含过滤器,并且根据信息的值,我可以决定是否使用“当前appender”。

有没有什么方法可以使“第一点logback”或执行“第二点log4j2”变得更容易呢?

提前谢了。

共有1个答案

林铭
2023-03-14

Log4j2支持过滤器,我相信与logback相当相似。听起来您正在寻找基于级别的筛选,您可以使用ThresholdFilter来实现这一点。

或者您可能正在寻找类似RoutingAppender的东西(请参见FAQ以获得扩展示例)?这允许您配置多个追加器,并根据ThreadContext映射动态地将日志事件路由到不同的追加器。

 类似资料:
  • 我试图在spark executor中使用自定义的log4j appender,以便将所有日志转发到Apache Kafka。 大卫

  • 问题内容: 下面一些Groovy类中的方法由其他我不知道的其他管道脚本类调用。 所有的println语句已被logger.info取代。 log4j2-test.properties Jenkins作业控制台上的输出(下面仅显示相关部分): 我配置的记录器可能未调用 运行时实例为OutputEventListenerBackedLogger 即使我更改了logger语句,它们也不会反映在输出中,但

  • 简介 此消息 用来接收 用户自定义TOPIC消息 发送过来的事件。 消息体 ChannelMessageBean 例子 Kotlin @Subscribe(threadMode = ThreadMode.MAIN) fun onReceiveCustomMessage(customEvent: ChannelMessageBean) { // TODO } ChannelMessageB

  • 我是codiva的开发者。io是面向学生的java ide。我正在使用codemirror编辑器。我想跟踪编辑(特别是上次编辑后的暂停或超时)。我以前使用过谷歌分析,对于事件,我们将使用。现在我正在使用Google标签管理器,对于点击和其他事件,我们似乎可以使用标签管理器ui本身进行配置。使用tag manager,我无法找到如何对此实施跟踪。 Codemirror生成一个on Change事件。

  • 我有一个使用slf4j进行日志记录的应用程序。现在我想添加一个功能,每当我记录错误时,就会调用一个特定的url。目前,我在应用程序级别添加了一个包装器方法,该方法发送http请求,然后调用logger方法。但这样我就错过了一些输出,一些异常只是被记录下来,而没有发送相应的请求。我正在尝试创建我的自定义logger类。我的问题是应该扩展哪些类(或要实现的接口)。我无法扩展Logger类,因为它的构造

  • 我正在尝试通过代码添加一个自定义的附加器,该附加器应该记录一些包。所有的工作都使用以下代码: 所以简而言之..正如您所看到的,如果之前没有定义追加器,我正在创建一个追加器。然后我为org.test创建一个记录器(如果没有添加的话),并将appender添加到这个记录器中。 多谢了。