public virtual IEnumerable <ILoggerProvider> CreateLoggerProviders(string hostInstanceId, ScriptHostConfiguration scriptConfig, ScriptSettingsManager settingsManager,
                                                                           Func <bool> isFileLoggingEnabled, Func <bool> isPrimary)
        {
            IList <ILoggerProvider> providers = new List <ILoggerProvider>();

            IMetricsLogger metricsLogger = scriptConfig.HostConfig.GetService <IMetricsLogger>();

            // Automatically register App Insights if the key is present
            if (!string.IsNullOrEmpty(settingsManager?.ApplicationInsightsInstrumentationKey))
            {
                metricsLogger?.LogEvent(MetricEventNames.ApplicationInsightsEnabled);

                ITelemetryClientFactory clientFactory = scriptConfig.HostConfig.GetService <ITelemetryClientFactory>() ??
                                                        new ScriptTelemetryClientFactory(settingsManager.ApplicationInsightsInstrumentationKey, scriptConfig.ApplicationInsightsSamplingSettings, scriptConfig.LogFilter.Filter);

                providers.Add(new ApplicationInsightsLoggerProvider(clientFactory));
            }
            else
            {
                metricsLogger?.LogEvent(MetricEventNames.ApplicationInsightsDisabled);
            }

            providers.Add(new FunctionFileLoggerProvider(hostInstanceId, scriptConfig.RootLogPath, isFileLoggingEnabled, isPrimary));
            providers.Add(new HostFileLoggerProvider(hostInstanceId, scriptConfig.RootLogPath, isFileLoggingEnabled));

            if (settingsManager.Configuration.GetSection("host:logger:consoleLoggingMode").Value == "always")
            {
                providers.Add(new ConsoleLoggerProvider(scriptConfig.LogFilter.Filter, includeScopes: true));
            }

            return(providers);
        }
        public ApplicationInsightsLoggerProvider(ITelemetryClientFactory clientFactory)
        {
            if (clientFactory == null)
            {
                throw new ArgumentNullException(nameof(clientFactory));
            }

            _clientFactory = clientFactory;
            _client        = _clientFactory.Create();
        }
        public ApplicationInsightsLoggerProvider(Func <string, LogLevel, bool> filter, ITelemetryClientFactory clientFactory)
        {
            if (clientFactory == null)
            {
                throw new ArgumentNullException(nameof(clientFactory));
            }

            _clientFactory = clientFactory;
            _client        = _clientFactory.Create();
            _filter        = filter;
        }
 public OrdersController(IOrdersRepository ordersRepository,
                         ILogger <OrdersController> logger,
                         IConfiguration configuration,
                         ITelemetryClientFactory telemetryClientFactory,
                         IVaultService vaultService)
 {
     _ordersRepository       = ordersRepository;
     _logger                 = logger;
     _configuration          = configuration;
     _telemetryClientFactory = telemetryClientFactory;
     _vaultService           = vaultService;
 }
        /// <summary>
        /// Registers an <see cref="ApplicationInsightsLoggerProvider"/> with an <see cref="ILoggerFactory"/>.
        /// </summary>
        /// <param name="loggerFactory">The factory.</param>
        /// <param name="telemetryClientFactory">The factory to use when creating the <see cref="TelemetryClient"/> </param>
        /// <returns>A <see cref="ILoggerFactory"/> for chaining additional operations.</returns>
        public static ILoggerFactory AddApplicationInsights(
            this ILoggerFactory loggerFactory,
            ITelemetryClientFactory telemetryClientFactory)
        {
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            // Note: LoggerFactory calls Dispose() on all registered providers.
            loggerFactory.AddProvider(new ApplicationInsightsLoggerProvider(telemetryClientFactory));

            return(loggerFactory);
        }
Beispiel #6
0
        public void AddLoggerProviders(ILoggerFactory factory, ScriptHostConfiguration scriptConfig, ScriptSettingsManager settingsManager)
        {
            // Automatically register App Insights if the key is present
            if (!string.IsNullOrEmpty(settingsManager?.ApplicationInsightsInstrumentationKey))
            {
                ITelemetryClientFactory clientFactory = scriptConfig.HostConfig.GetService <ITelemetryClientFactory>() ??
                                                        new ConsoleTelemetryClientFactory(settingsManager.ApplicationInsightsInstrumentationKey, scriptConfig.LogFilter.Filter);

                scriptConfig.HostConfig.LoggerFactory.AddApplicationInsights(clientFactory);
            }

            // TODO: Get trace level, add console logger
            scriptConfig.HostConfig.LoggerFactory.AddColoredConsole((cat, lvl) => cat.StartsWith("Worker."), false);
        }
Beispiel #7
0
 public BackgroundServiceDecorator(
     IBackgroundService decorated,
     ITelemetryClientFactory telemetryClientFactory,
     ShellSettings shellSettings,
     IEnumerable <IBackgroundTask> backgroundTasks,
     IClock clock,
     ISiteService siteService)
 {
     _decorated = decorated;
     _telemetryClientFactory = telemetryClientFactory;
     _shellSettings          = shellSettings;
     _backgroundTasks        = backgroundTasks;
     _clock       = clock;
     _siteService = siteService;
 }
Beispiel #8
0
        public IEnumerable <ILoggerProvider> CreateLoggerProviders(ScriptHostConfiguration scriptConfig, ScriptSettingsManager settingsManager, Func <bool> isFileLoggingEnabled, Func <bool> isPrimary)
        {
            List <ILoggerProvider> loggerProviders = new List <ILoggerProvider>();

            // Automatically register App Insights if the key is present
            if (!string.IsNullOrEmpty(settingsManager?.ApplicationInsightsInstrumentationKey))
            {
                ITelemetryClientFactory clientFactory = scriptConfig.HostConfig.GetService <ITelemetryClientFactory>() ??
                                                        new ConsoleTelemetryClientFactory(settingsManager.ApplicationInsightsInstrumentationKey, scriptConfig.LogFilter.Filter);

                loggerProviders.Add(new ApplicationInsightsLoggerProvider(clientFactory));
            }

            loggerProviders.Add(new ColoredConsoleLoggerProvider(scriptConfig.LogFilter.Filter));

            return(loggerProviders);
        }
        /// <summary>
        /// Adds additional <see cref="ILoggerProvider"/>s to the <see cref="ILoggerFactory"/>.
        /// </summary>
        /// <param name="factory">The <see cref="ILoggerFactory"/>.</param>
        /// <param name="scriptConfig">The configuration.</param>
        public virtual void AddLoggerProviders(ILoggerFactory factory, ScriptHostConfiguration scriptConfig, ScriptSettingsManager settingsManager)
        {
            IMetricsLogger metricsLogger = scriptConfig.HostConfig.GetService <IMetricsLogger>();

            // Automatically register App Insights if the key is present
            if (!string.IsNullOrEmpty(settingsManager?.ApplicationInsightsInstrumentationKey))
            {
                metricsLogger?.LogEvent(MetricEventNames.ApplicationInsightsEnabled);

                ITelemetryClientFactory clientFactory = scriptConfig.HostConfig.GetService <ITelemetryClientFactory>() ??
                                                        new ScriptTelemetryClientFactory(settingsManager.ApplicationInsightsInstrumentationKey, scriptConfig.ApplicationInsightsSamplingSettings, scriptConfig.LogFilter.Filter);

                scriptConfig.HostConfig.LoggerFactory.AddApplicationInsights(clientFactory);
            }
            else
            {
                metricsLogger?.LogEvent(MetricEventNames.ApplicationInsightsDisabled);
            }
        }
        public virtual IEnumerable <ILoggerProvider> CreateLoggerProviders(string hostInstanceId, ScriptHostConfiguration scriptConfig, ScriptSettingsManager settingsManager,
                                                                           Func <bool> isFileLoggingEnabled, Func <bool> isPrimary)
        {
            IList <ILoggerProvider> providers = new List <ILoggerProvider>();

            IMetricsLogger metricsLogger = scriptConfig.HostConfig.GetService <IMetricsLogger>();

            // Automatically register App Insights if the key is present
            if (!string.IsNullOrEmpty(settingsManager?.ApplicationInsightsInstrumentationKey))
            {
                metricsLogger?.LogEvent(MetricEventNames.ApplicationInsightsEnabled);

                ITelemetryClientFactory clientFactory = scriptConfig.HostConfig.GetService <ITelemetryClientFactory>() ??
                                                        new ScriptTelemetryClientFactory(settingsManager.ApplicationInsightsInstrumentationKey, scriptConfig.ApplicationInsightsSamplingSettings, scriptConfig.LogFilter.Filter);

                providers.Add(new ApplicationInsightsLoggerProvider(clientFactory));
            }
            else
            {
                metricsLogger?.LogEvent(MetricEventNames.ApplicationInsightsDisabled);
            }

            providers.Add(new FunctionFileLoggerProvider(hostInstanceId, scriptConfig.RootLogPath, isFileLoggingEnabled, isPrimary));
            providers.Add(new HostFileLoggerProvider(hostInstanceId, scriptConfig.RootLogPath, isFileLoggingEnabled));

            // console logging defaults to false, except for self host
            bool   enableConsole = scriptConfig.IsSelfHost;
            string configValue   = settingsManager.Configuration.GetSection(ScriptConstants.ConsoleLoggingMode).Value;

            if (!string.IsNullOrEmpty(configValue))
            {
                // if it has been explicitly configured that value overrides default
                enableConsole = string.CompareOrdinal(configValue, "always") == 0 ? true : false;
            }
            if (ConsoleLoggingEnabled(scriptConfig, settingsManager))
            {
                providers.Add(new ConsoleLoggerProvider(scriptConfig.LogFilter.Filter, includeScopes: true));
            }

            return(providers);
        }