13

我正在使用洋葱架构和域驱动设计开发控制台应用程序。我有两个域,我需要在其中实现日志记录,我很困惑我可以在哪里放置日志记录组件。我可以把它放在两个域的各自基础设施中吗?或者在可以在两个域中引用的共享内核中?如果我需要将它放在共享内核中,我应该遵循什么结构?我的意思是像核心,基础设施。

4

3 回答 3

12

日志记录是一个跨领域的关注点。面向方面的编程旨在将横​​切关注点封装到方面。这允许对解决横切关注点的代码进行干净的隔离和重用。

您需要创建一个库并实现您的日志记录类,例如“MyProject.CrossCutting.Logging”,并使用面向方面的方法使用此库记录事件。

典型的洋葱架构

于 2014-12-27T18:29:27.873 回答
7

日志记录贯穿您的所有应用程序。这应该是你框架的一部分。所有应用程序项目的所有层都可以依赖于您的框架,就像它们依赖于 .Net Framework、Spring 等一样。您的框架必须具有您可以轻松依赖的横切关注点的抽象,并且然后只需在基础设施中的应用程序的组合根中引用实现即可。

于 2015-03-10T08:30:11.107 回答
3

如果您遵循 DDD 和洋葱架构,那么您拥有多少域并不重要。如果需要,每个域都可以实现自己的 Logger 版本。很可能,您将创建一个日志接口,也可能创建一个静态实现,该实现保存在通用层中,可以由任何需要它的层调用。在之前共享的图像中,它将保留在横切层中。如前所述,日志记录是所有层的关注点。

于 2014-12-30T22:39:03.810 回答