我刚刚开始学习 Ninject,但遇到了记录器的问题。我目前有一个控制器,它有一个服务和记录器注入到构造函数中,如下所示:
public ToolsController(IToolsService toolsService, ILogger logger)
{
logger.Info("ToolsController Created");
this.toolsService = toolsService;
this.logger = logger;
}
问题出在构造函数中的 logger.Info 行(例如),它似乎使用了错误的记录器,因此它打印出的记录器名称不正确。
Tools.IGeocodeImporter: ToolsController Created
以下是获取记录器名称的设置方法:
kernel.Bind<ILogger>().To<Logger>().WithConstructorArgument("name", x => x.Request.ParentContext.Request.Service.FullName);
任何意见,将不胜感激。
我使用以下内容:
.Bind<ILog>().ToMethod(p => LogManager.GetLogger(
p.Request.Target.Member.DeclaringType));
让记录器具有类的名称。我正在使用 Log4net,但我认为这个想法也可以应用于任何日志:事实上,绑定到方法可以让您使用任何解决方案来创建所需的实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)