【问题标题】:Using Serilog with Castle Windsor LoggingFacility将 Serilog 与 Castle Windsor LoggingFacility 一起使用
【发布时间】:2016-04-12 04:13:41
【问题描述】:

我目前有一个使用 Castle Windsor for Ioc 的应用程序。我现在想将 log4net 的日志框架更改为 Serilog。

下面为log4net配置东西:

IocManager.Instance.IocContainer.AddFacility<LoggingFacility>(f => f.UseLog4Net().WithConfig("log4net.config"));

但是没有 UseSerilog() 并查看 UseLog4Net() 是如何实现它最终调用的:

LogUsing(LoggerImplementation.Log4net)

但是 LoggerImplementation 枚举没有 Serilog 成员。那么如何告诉 Castle 使用 Serilog 作为我首选的日志记录框架呢?

【问题讨论】:

    标签: c# castle-windsor


    【解决方案1】:

    我们没有发布带有 Serilog 枚举成员的 Windsor 新版本,但是如果您查看 LoggingFacility 的实现,您会发现枚举成员(例如 log4net)我们只是通过反射加载。

    您可以轻松使用LogUsing&lt;T&gt;() 提供Castle Core 提供的SerilogFactory

    var container = new WindsorContainer();
    container.AddFacility<LoggingFacility>(f => f.LogUsing<SerilogFactory>());
    

    我们还在 Windsor 4.1.0 中弃用了 Logging Facility 的 LoggerImplementation 枚举,推荐使用 LogUsing&lt;T&gt;

    【讨论】:

    • 不知道为什么有人反对我的回答,但这是正确的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    相关资源
    最近更新 更多