Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在MVC应用程序中使用ILog的单个实例_Asp.net Mvc_Log4net_Ninject - Fatal编程技术网

Asp.net mvc 在MVC应用程序中使用ILog的单个实例

Asp.net mvc 在MVC应用程序中使用ILog的单个实例,asp.net-mvc,log4net,ninject,Asp.net Mvc,Log4net,Ninject,在我的ASP.NET MVC应用程序中,我正在为DI使用Ninject。我正在使用下面的模块解析控制器中的ILog依赖关系 public override void Load() { var configPath = ConfigurationManager.AppSettings["Log4NetConfigPath"]; // Load the external config file for Log4Net

在我的ASP.NET MVC应用程序中,我正在为DI使用Ninject。我正在使用下面的模块解析控制器中的
ILog
依赖关系

      public override void Load()
      {
          var configPath = ConfigurationManager.AppSettings["Log4NetConfigPath"];

          // Load the external config file for Log4Net
          XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
          log4net.Util.LogLog.InternalDebugging = true;

          Bind<ILog>().ToMethod((c) => LogManager.GetLogger("AVLogger")).InSingletonScope();

      }
public override void Load()
{
var configPath=ConfigurationManager.AppSettings[“Log4NetConfigPath”];
//加载Log4Net的外部配置文件
Configure(新的System.IO.FileInfo(configPath));
log4net.Util.LogLog.InternalDebugging=true;
Bind().ToMethod((c)=>LogManager.GetLogger(“AVLogger”)).InSingletonScope();
}
我正在调用
InSingletonScope
()以在整个应用程序中提供
ILog
实例的单个实例。我有一些问题

  • 我真的需要为拥有一个
    ILog
    实例而烦恼吗?我可以删除SingletonScope中的
    方法本身吗

  • 只有一个
    ILog
    实例是否会造成一些性能问题


  • 这将取决于创建记录器的成本。我不知道log4net的性能特点是什么,但是如果它不贵的话,你应该创建一个新的


    当您使用InSingletonScope()时,这意味着只要工作进程存在,日志就会一直存在(即当它被回收或关闭时,日志将被销毁)。这也意味着当你不需要它的时候,记录器就在你身边。与其说它是一个“性能”问题,不如说它是一个管理资源的问题。

    这取决于创建记录器的成本有多高。我不知道log4net的性能特点是什么,但是如果它不贵的话,你应该创建一个新的

    当您使用InSingletonScope()时,这意味着只要工作进程存在,日志就会一直存在(即当它被回收或关闭时,日志将被销毁)。这也意味着当你不需要它的时候,记录器就在你身边。与其说它是一个“性能”问题,不如说它是一个管理资源的问题