我面临着在我的 C# 类库中记录实现的挑战,这是一个域模型。我的主要目标是保持日志记录功能尽可能规范和解耦。通常日志消息将被写入文件,并可能在调试时输出窗口。
目前我使用 log4net,并且我已经编写了一个静态Logger
类,它自己实现了日志记录方法。因此,当执行域对象中的方法时,它们调用静态Logger.Log()
方法。
虽然这种包装足以缓解我的纯洁冲动,但我想知道通过事件实现所有这些日志记录调用并从类库中完全删除日志记录实现细节是否是个好主意。然后,客户端代码会选择性地监听它们并从一些LogEventArgs
.
所以问题是:
一般来说,基于事件的日志记录,特别是在类库中,是一个好主意吗?为什么?
谢谢阅读。