【问题标题】:Migrating to semantic logging with Castle ILogger and log4net使用 Castle ILogger 和 log4net 迁移到语义日志记录
【发布时间】:2014-02-18 23:35:14
【问题描述】:

对于当前使用 Castle 的 Logging Facility 和 log4net 的应用程序,开始使用新的 .NET 4.5 EventSource 类进行日志记录的最佳方式是什么。

最初我认为可能会扩展 Castle 的 ILogger 接口以支持 EventSource 促进的更丰富的语义式日志记录 (Issue raised),但现在我不确定它们是否真的可以很好地协同工作。

我注意到Semantic Logging Application Block 提供了一种使用 EventSource 的实现,但这当然不是使用 ILogger。

【问题讨论】:

    标签: .net logging log4net castle etw-eventsource


    【解决方案1】:

    如果您想迁移到一般的语义日志记录,而不仅仅是 SLAB 实现,您可能会发现迁移到 Serilog 会更容易。 (免责声明 - 我开始了这个项目,虽然它现在已经很成熟了)。

    Serilog 实现了与 EventSource 和朋友相同的语义日志记录概念,但使用您从 Castle 获得的经典“ILogger”风格 API。

    log.Information("The cart contains {CartSize} items", cart.Count);
    

    此示例将名为CartSize 的结构化属性与事件相关联,就像您将参数传递给EventSource 方法一样。 (您甚至可以使用经典的 {0} 数字格式说明符,并且仍然可以获取带有编号而不是命名属性的结构化事件!)

    因为 API 是兼容的,所以将现有应用从一种风格的 ILogger 转移到另一种风格比将所有内容移植到 EventSources 更容易。有几种方法可以解决它,如果您决定选择它,我会留意任何后续问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      相关资源
      最近更新 更多