我最近一直在通过依赖注入来学习控制反转,并使用Castle Windsor。我喜欢。我知道了。我头上的灯泡燃烧得很明亮。但我对测井设备和接口有一个唠叨的担心。那里真的在做什么?对我来说,还是只为温莎本身?Castle Windsor的日志记录工具有哪些用例?
由于旨在抽象出log4net和Nlog以及它支持的任何其他日志框架之间的差异,因此它必须表示它们之间的最小公分母。各种框架是相似的,但不一定完全相同。如果其中一个有一些奇妙的功能,但不是其他的,那么它将不得不被排除在之外,或者其他日志记录框架的实现将不得不具有它的无操作实现,或者其他不是很满意。
早在温莎之前,我就是log4net的粉丝,很多我最喜欢的库都使用它,比如NHibernate。所以如果我正在构建一个新的应用程序,我将使用log4net。我愿意承诺,并且我认为它是一个稳定的依赖关系 - 作为稳定的依赖关系,例如需要System.Web
。我不会写我的组件使用,我会写他们使用ILog
。但我的印象是,温莎希望我使用进行自己的日志记录。当我不应该对IoC容器有任何依赖时,是不是对依赖于Windsor的项目产生了负面影响?
我明白了Windsor拥有日志设施的意义,因此它可以使用项目想要使用的任何日志框架来记录自己的操作。这似乎是非常明智的。但是如果我不使用作为自己的代码,并且直接转到log4net的ILog
,我放弃了什么?我会后悔吗?
明显的回应是我可能想在六个月内更改日志框架。但我不会。 log4net成熟稳定。这是一个具有有限和非常明确的范围的项目,它几乎完美实现。它可以被认为是“完成”。至多,我可能需要编写一个自定义appender来处理消息。 (也许我想把它们写在明信片上,出于某种原因放在邮件中。)但是这很容易在log4net框架内完成,我会像使用其他log4net appender一样使用它。我不太可能改变日志框架,而不是改变网络平台。
我需要一点验证! – 2012-02-15 16:23:15