protected override void OnInitializeConfig(ScriptHostConfiguration config)
{
base.OnInitializeConfig(config);
// Note: this method can be called many times for the same ScriptHostConfiguration
// so no changes should be made to the configuration itself. It is safe to modify
// ScriptHostConfiguration.Host config though, since the inner JobHostConfiguration
// is created anew on each restart.
// Add our WebHost specific services
var hostConfig = config.HostConfig;
hostConfig.AddService<IMetricsLogger>(_metricsLogger);
// Add our exception handler
hostConfig.AddService<IWebJobsExceptionHandler>(_exceptionHandler);
// Register the new "FastLogger" for Dashboard support
var dashboardString = AmbientConnectionStringProvider.Instance.GetConnectionString(ConnectionStringNames.Dashboard);
if (dashboardString != null)
{
// hostId may be missing in local test scenarios.
var hostId = config.HostConfig.HostId ?? "default";
var fastLogger = new FastLogger(hostId, dashboardString);
hostConfig.AddService<IAsyncCollector<FunctionInstanceLogEntry>>(fastLogger);
}
hostConfig.DashboardConnectionString = null; // disable slow logging
}