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); }
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); }
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; }
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); }