3

我面临着在我的 C# 类库中记录实现的挑战,这是一个域模型。我的主要目标是保持日志记录功能尽可能规范和解耦。通常日志消息将被写入文件,并可能在调试时输出窗口。

目前我使用 log4net,并且我已经编写了一个静态Logger类,它自己实现了日志记录方法。因此,当执行域对象中的方法时,它们调用静态Logger.Log()方法。

虽然这种包装足以缓解我的纯洁冲动,但我想知道通过事件实现所有这些日志记录调用并从类库中完全删除日志记录实现细节是否是个好主意。然后,客户端代码会选择性地监听它们并从一些LogEventArgs.

所以问题是:

一般来说,基于事件的日志记录,特别是在类库中,是一个好主意吗?为什么?

谢谢阅读。

4

1 回答 1

3

使用事件进行日志记录也引入了很多内存泄漏的可能性!

我会使用依赖注入来解决诸如日志记录之类的横切关注点。

使用 DI,您可以将其注入或使用拦截。

于 2013-11-19T13:28:54.573 回答