2009-12-24 48 views
3

包装log4net减少耦合反模式?或者将记录器实例注入到一个公共属性中的反模式?你如何处理log4net依赖?包装log4net减少耦合反模式?

+0

你能解释一下横向层的含义吗? – ewall 2009-12-24 20:19:41

+0

通过横向我的意思是这层将可用于所有其他层,如安全层 – 2009-12-27 22:51:33

回答

0

service locatorconsideredanti-pattern许多人都在.NET社区的前沿。我会说日志记录通常是我们应用程序的一个非常良性的特征。它基本上是“只写”。我们从不根据日志系统的查询做出决定。

log4net的也是一个系统,很容易关闭,不会引发异常,就会失败,可以动态更新其配置......有几乎没有理由换出的实施一旦其英寸

所以,我说,在应用程序代码中,可以直接使用它。

0

我们定义了一个日志接口,并有一个log4net实现,一个unitTest实现和一个null实现。

我们使用依赖注入来传递一个loggingInterface实现。

单元测试实现有其他方法,比如'bool ErrorWasLogged()',这样在我们的单元测试中我们可以断言重要的信息被记录下来。对于我们对测试记录不感兴趣的测试,我们使用null实现。

1

裹低于原因记录仪 -

  1. ,如果你想改变它的东西更好地没有级联变化,提取出只记录仪的变化,在未来的。
  2. 当你想写测试用例时,它使你的生活变得简单。你可以轻松地嘲笑所需的东西。
  3. 如果由于某些原因,您需要在应用程序中使用多个记录器,那么包装器将有所帮助。您可以通过某些工厂/注册表更改记录器。例如 - 如果代码在不同的平台/环境中共享,您希望有不同的记录器。你可以使它工厂/注册表驱动。

所以,我认为很好包装它。