Boo*_*oks 5 castle-windsor inversion-of-control
我正在尝试删除一些日志记录依赖项,并偶然发现Castle Windsor的日志记录工具.但是,我对是否应该使用它持怀疑态度.
public class MyClass
{
public Castle.Core.Logging.ILogger Logger { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
Windsor的日志记录工具要求您将记录器作为属性公开.这真的是一个好习惯吗?我觉得我几乎打破了封装,因为通常当我重用一个组件时,我不关心它的日志记录机制,我通常不希望看到它暴露.
如果我使用使用静态类创建日志的自定义包装器,我可以将其保密.例如:
public class MyClass
{
private static MyCustomWrapper.ILogger Logger = LogManager.GetLogger(typeof(MyClass));
...
}
Run Code Online (Sandbox Code Playgroud)
我在网上搜索了我应该使用日志记录工具的原因,但我只是找到了如何使用它的文章,但不是为什么我应该使用它.我觉得我错过了这一点.暴露日志记录组件会让我感到害怕.
Windsor的日志记录工具要求您将记录器作为属性公开.
不必要.您还可以将记录器作为构造函数(即必需的)依赖项.记录器通常被声明为属性(即可选依赖项),因为可能没有记录器.也就是说,组件应该能够在没有记录器的情况下运行.
如果我使用自定义包装器使用静态类来创建日志
这是一个服务定位器,该代码夫妻MyClass到LogManager,这是恕我直言比你试图让远离恶化.
| 归档时间: |
|
| 查看次数: |
656 次 |
| 最近记录: |