1

我的服务堆栈 Web 服务中有 MVC 分析器,我看到请求被记录到 Nlog。

但是,当我尝试分析我的 PostgreSQL 数据库时,不会生成任何日志。

我的 global.asax.cs 中有:

        var dbConnectionFactory = new OrmLiteConnectionFactory(
            "Server=127.0.0.1;Port=5432;Database=mydatabase;User 
                                          Id=id;Password=password;")

                                      {
                                          ConnectionFilter = x => new 
                                      ProfiledDbConnection(x, Profiler.Current)
                                      };

        builder.RegisterInstance(dbConnectionFactory).
                         ExternallyOwned().As<IDbConnectionFactory>();

         var autofacContainer = builder.Build();
        //set Autofac as default Dependency Resolver for application
        DependencyResolver.SetResolver(new 
                                  AutofacDependencyResolver(autofacContainer));

    protected void Application_BeginRequest()
    {
        if (Request.IsLocal)
        {
            Profiler.Start();
        } 
    }

    protected void Application_EndRequest(object src, EventArgs e)
    {
        if (Profiler.Current != null)
        {
            Logger.Debug("profiling result id:{0}\nresult:{1}", Profiler.Current.Id,Profiler.Current.Render());
        }
        Profiler.Stop();
    }
4

1 回答 1

1

MiniProfiler 与日志无关,它控制所分析的结果是否在 MiniProfiler 查看器上可见(即在ServiceStack 的自动生成的 HTML5 报告页面上)。

您在这里没有显示任何日志记录代码(我假设您正在使用带有 NLog 适配器的ServiceStack.Logging )。配置它的最佳位置是在初始化 AppHost 之前,因此所有静态构造函数都使用配置的 Logging 提供程序,即:

LogManager.LogFactory = new NLogFactory();
(new AppHost()).Init();
于 2013-02-03T00:05:25.533 回答