【发布时间】:2013-09-24 13:13:15
【问题描述】:
我正在尝试通过 NLog 实现日志记录,有一些代码异味确实需要我注意,但目前由于我的知识有限,我不确定如何处理它们。
以下是我不喜欢的东西
首先,我将 NLog 的实际实现隐藏在要与 DI 一起使用的接口后面,并且该类是单例。
目前我正在尝试记录尽可能多的信息,这意味着我正在从业务对象中的几乎每个方法调用记录器,并且我不喜欢我在 Logging 类上创建的依赖项。他们是否有更好的方法从每个方法进行日志记录而不是直接调用方法?在这里,我相信我违反了 Open Closed Principal 因为如果我在日志接口方法中进行更改。所有的地狱都会崩溃,这种变化几乎会波及每一种方法。
其次,更可怕的部分是,在某些情况下,我需要将一些额外的信息传递给我的记录器,例如 UserID、ProductCode 等。如果我将该信息作为参数传递给记录器类,我什至不想考虑那条路......更有经验的人如何处理这些情况?
请提供您的反馈!
【问题讨论】: