如何将Caliburn.Micro.Logging与Ninject.Logging&log4net相结合

本文关键字:Logging amp 相结合 log4net Ninject Caliburn Micro | 更新日期: 2023-09-27 17:57:12

我目前正在尝试将Caliburn.Micro和Ninject的日志记录接口与log4net结合起来。每个框架都提供自己的日志记录外观,但它们似乎不能很好地协同工作。

这是我的 Caliburn 引导程序的缩短版本:

public class AppBootstrapper : BootstrapperBase {
    private IKernel _kernel;
    private ILogger _logger;
    protected override void Configure() {
        Log4NetConfigurator.Configure();
        _kernel = new StandardKernel(new INinjectModule[] { new Log4NetModule(); });
        var logFactory = _kernel.Get<ILoggerFactory>();
        _logger = loggerFactory.GetLogger("Startup");
        // what do here?
        // LogManager.GetLog = type = _logger?? (LogManager expects ILog, not ILogger..)
    }
}

如何将Caliburn.Micro.Logging与Ninject.Logging&log4net相结合

您需要创建一个适配器来实现 Caliburn.Micro 的日志记录接口并将调用委托给 log4net 记录器。

或者,可以使用已创建的解决方案,该解决方案可通过 NuGet 获得。