【问题标题】:Using Common.Logging with Asp.net MVC and Castle Windsor将 Common.Logging 与 Asp.net MVC 和 Castle Windsor 一起使用
【发布时间】:2011-05-16 09:45:39
【问题描述】:

我想使用 Common.Logging 删除对特定日志记录框架的依赖,但我不确定如何使用 Castle Windsor IoC 容器连接 ILog 接口。有没有办法做到这一点?谢谢!

【问题讨论】:

  • container.Register( Component.For() .Instance(Common.Logging.LogManager.GetLogger("FileAppender")));

标签: c# asp.net-mvc logging castle-windsor


【解决方案1】:

为 Common.Logging 创建您自己的设施,看看它是如何为现有的Logging Facility in Windsor 完成的。 Common.Logging 可能有一个记录器工厂,您可以在设施中使用它来创建记录器。

或者您可以节省自己的工作,只需将Castle's ILogger 与 Logging 工具一起使用:Windsor 将为您在您的类中注入 ILogger 实例。适用于 log4net 和 NLog v2。

【讨论】:

    【解决方案2】:

    你真的想要两者都做吗? (使用 Common.Logging 并通过 Castle Windsor IoC 注入它?)使用 Common.Logging 可以让您的应用程序不依赖于特定的日志框架(例如 log4net、NLog、Enterprise Logging)。我不使用 Castle,但我的理解是它的日志记录工具具有类似的目标。您可以将 Castle Windsor 配置为使用特定的日志框架(例如 log4net 或 NLog),但您的应用程序不需要知道最终使用的是哪个日志框架。

    注入 Common. 通过 Castle Windsor 进行伐木看起来就像系着腰带和吊带来撑起你的裤子!您将通过 Castle Windsor 自己的日志抽象功能注入日志抽象!

    我的猜测是您真的想使用一种技术或另一种技术(Common.Logging 或 Castle Windsor 的日志工具)。

    如果您确实想通过 Castle Windsor 注入 Common.Logging,您可能会发现此链接很有用:

    Logging with Castle.Facilities.Logging and log4net

    除其他外,它还描述了如何编写您自己的自定义 Castle Windsor 日志记录工具以供 Castle Windsor 注入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多