是否可以通过.NET客户端访问ActiveMQ Artemis系统日志(由Broker插件启用)

时间:2020-01-14 21:35:32

标签: activemq-artemis

我已根据此页面使用代理插件在Artemis实例上启用了消息传递日志。为了通过映射发布者-> artemis服务器->订阅者之间的端到端消息传递和接收时间来进行一些分析,我试图查看是否正在记录到artemis日志文件中的消息内容(具体为消息ID )可以通过我们拥有的发布和订阅.NET应用程序进行访问。以下是来自artemis.log文件的日志,其中包含带有MessageId的消息,指示各种事件。

20:50:24,552信息 [org.apache.activemq.artemis.core.server.plugin.impl] AMQ841010: 路由的ID为2231685496的邮件,结果:确定

20:50:24,552信息 [org.apache.activemq.artemis.core.server.plugin.impl] AMQ841009:已发送 ID:2231685496的消息,会话名称: 9d9c035b-176e-11ea-ab75-020ff9805db8,会话连接ID:68a7ec34, 结果:确定

20:50:24,553信息 [org.apache.activemq.artemis.core.server.plugin.impl] AMQ841012: 已向地址上的消费者发送了消息ID:2231685496的消息 News.Source.T,队列:f0586137-5ad3-4c77-b2c7-5b68daad672c,消费者 sessionID:fcbcd194-3295-11ea-a2c0-0a89c5c4c02a,使用者ID:0

20:50:24,554信息 [org.apache.activemq.artemis.core.server.plugin.impl] AMQ841014: 已确认的消息ID:2231685496,messageRef会话ID: fcbcd194-3295-11ea-a2c0-0a89c5c4c02a,带有messageRef消费者ID:0, messageRef QueueName:f0586137-5ad3-4c77-b2c7-5b68daad672c,带有 ackReason:正常

为此,我们正在使用AMQPNetLite,但找不到任何可以帮助我们将已发送和已接收的消息与正在写入artemis.log文件的日志联系起来的东西。我一直在寻找是否有办法从发布者应用程序上的这些日志中保留MessageId。非常感谢您对此主题提出任何建议。

1 个答案:

答案 0 :(得分:0)

消息客户端无法从代理的日志文件中获取数据,因为该数据仅在基于文本的日志中,而实际上不在消息代理本身中。但是,您可以使用类似NotificationActiveMQServerPlugin的方法,而不是记录此信息,而是将带有此信息的 messages 发送到management notification address。客户端可以在管​​理通知地址上创建订阅并接收消息,然后根据该信息采取措施。通知消息可能可能不包含您需要的所有信息,但是您可以轻松扩展此类以创建自己的插件,其中包含您需要的所有信息。