许多日志框架提供特定于类的记录器:
日志: Logger.GetLogger(typeof(MyClass).Name)
串行日志: Log.Logger.ForContext<MyClass>()
为了能够注入这些特定于类的记录器,可以在 Ninject 中执行以下操作:
Bind<ILog>().ToMethod(context =>
{
var typeForLogger = context.Request.Target != null ? context.Request.Target.Member.DeclaringType : context.Request.Service;
return context.Kernel.Get<ILoggerFactory>().GetLogger(typeForLogger);
});
wherecontext.Request.Target
提供将接收注入的类型。
我找不到任何使用 LightInject 的方法来做同样的事情;(尚)不支持此功能吗?