我的领域层中有一些非常昂贵的业务逻辑,必须在其中跟踪数据,以便了解发生故障时会发生什么。正因为如此,我想声明一个简单的日志接口:
public interface ILogger {
void Log(LogEntry entry);
}
现在我的问题是——这个接口属于哪里?当然,日志记录可能是一个基础设施问题(以及一点跨层问题),但如果我将它放在基础设施层,我的域服务将无法访问它。如果放到域层,我引入了登录到我的域的概念,感觉很别扭。
我已经在我的应用程序中使用了来自 CQRS 和 EventSourcing 的某些概念,但是为域服务中的数据发生的所有事情抛出一个事件似乎是一种矫枉过正(尤其是如果数据处于无法返回的状态)由域服务直到进行了进一步的转换。)