logging - 如何在 cqrs 上下文中正确处理日志记录?

标签 logging domain-driven-design messaging cqrs

我试图弄清楚如何处理登录 CQRS 设置。情况如下:

  • 我有一个基于 Rx 的事件代理。
  • 我有一个项目 Foo.Events事件继承自 EventArgs (不知道为什么)相应地,代理希望所有事件都继承自此类。
  • 我有几个子系统(用 DI 初始化)发布到日志。
  • 我需要几个子系统来处理日志请求并相应地处理它们(在屏幕上显示,发送 xmpp/sms/任何内容)

  • 现在,我想弄清楚如何适应这个日志。在 CQRS 中,在我看来,日志记录本身并不是一个事件,而是系统对事件的响应。另一方面,日志请求看起来像一个命令,即 CQRS 中的 C。

    我很想以某种方式将其放入事件代理中,但我不确定。无论如何,命令是否属于事件代理,我们是否可以假设代理只是一些并不真正关心它是 C 还是 Q 的消息传递系统?

    非常感谢您的帮助!

    最佳答案

    日志记录是一个基础设施问题。命令和事件(通常)与业务相关。日志记录只在必要时发生,技术实现取决于您。它既不是命令也不是事件。它记录了其中之一已经发生。事实上,您甚至可能想要记录某些查询。

    您可以将事件存储在事件日志(甚至事件存储)中并将它们用作日志。如果您需要记录命令和/或某些查询,您还可以使用日志处理程序包装您的命令和查询处理程序。

    关于logging - 如何在 cqrs 上下文中正确处理日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17602627/

    相关文章:

    linux - Bash 中的简单日志记录级别

    c# - 如何使用 DDD/CQRS 编写功能

    android - 向 UI 线程发送消息

    java - Tomcat 7.0.47 - Windows - 缺少未处理的异常/堆栈跟踪

    python - 如何查看 pytest 运行期间创建的正常打印输出?

    java - Http Controller 参数对象定义为DTO还是其他?

    c# - MVC - WCF - RabbitMQ - 通过消息队列到消费者的域事件加速或替代方案?

    domain-driven-design - 分布式域驱动设计资源

    java - Kafka Java 消费者永远不会收到任何消息

    java - 如何向所有日志语句添加新的日志值