如何将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 的日志记录接口并将调用委托给 log4net 记录器。
或者,可以使用已创建的解决方案,该解决方案可通过 NuGet 获得。