【问题标题】:How to write custom logs when message is enqueued & dequeued in ActiveMQ消息在 ActiveMQ 中入队和出队时如何编写自定义日志
【发布时间】:2020-06-15 14:39:12
【问题描述】:

当我将消息入队/出队时,ActiveMQ 会在<ACTIVEMQ_HOME>/data/activemq.log 中写入日志

2020-03-03 12:59:36,505 |  test001              | DEBUG | queue://test001, subscriptions=0, memory=0%, size=172, pending=0 toPageIn: 0, force:false, Inflight: 0, pagedInMessages.size 172, pagedInPendingDispatch.size 172, enqueueCount: 200, dequeueCount: 28, memUsage:178980, maxPageSize:200 | org.apache.activemq.broker.region.Queue | ActiveMQ BrokerService[localhost] Task-23

如果我向 ActiveMQ 发送一条消息,比如说“测试”,我想在日志文件中写入 publisher name(hostname) message。此外,如果我有多个消费者(例如,消费者 1、消费者 2 等),那么当它使消息出列时,我想在日志文件中写入 consumer name(hostname)

【问题讨论】:

  • @JustinBertram 感谢您编辑问题。如果我向 ActiveMQ 发送一条消息,让我们说“测试”。我想在日志文件中写入发布者名称(主机名)和消息。此外,如果我有多个消费者(消费者 1,消费者 2,....),那么我想在日志文件中写入消费者名称(主机名),使上述消息出列。
  • 发布者和消费者应用程序以及 Log4j 配置在这里完全无关紧要。经纪人自己记录信息,而不是客户端。我已经简化了问题,使其更容易理解。
  • @JustinBertram 再次感谢您对我的帮助以及您的宝贵意见。

标签: c# .net log4j activemq


【解决方案1】:

目前还不清楚您究竟想在这里实现什么,但我猜想很接近您想要一些类似于自定义Logging Broker Plugin 的东西。根据您提供的关于您要记录的内容以及这似乎是最佳选择的模糊信息。代理插件使您可以访问进入和退出代理队列的消息,因此您可以记录您发现对您的用例有用的任何信息。

【讨论】:

  • 我想配置 ActiveMQ 是这样一种方式,它将所有传入的消息,发布者名称(主机名)写入日志文件。我还想将消息从 ActiveMQ 出列的消费者名称(主机名)写入日志文件。
  • 正如我所说,你必须自己实现日志记录,因为正常情况下是一个等待发生的安全漏洞
猜你喜欢
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多