public async Task Execute(ILoggingBuilder builder, LoggerItemConfiguration configuration) { //反序列化特定配置 var innerConfiguration = JsonSerializerHelper.Deserialize <ApplicationInsightsConfiguration>(JsonSerializerHelper.Serializer(configuration.ConfigurationObj)); //绑定提供方 builder.AddApplicationInsights(innerConfiguration.Key, (opt) => { opt.IncludeScopes = innerConfiguration.IncludeScopes; opt.TrackExceptionsAsExceptionTelemetry = innerConfiguration.TrackExceptionsAsExceptionTelemetry; }); //配置级别过滤 foreach (var filterItem in configuration.LogLevels) { builder.AddFilter <ApplicationInsightsLoggerProvider>(filterItem.Key, filterItem.Value); } //配置其他未指定目录的最低级别 builder.AddFilter <ApplicationInsightsLoggerProvider>((level) => { if (level < configuration.DefaultMinLevel) { return(false); } return(true); }); await Task.FromResult(0); }
public static void ConfigureLogging(HostBuilderContext hostBuilderContext, ILoggingBuilder loggingBuilder) { if (hostBuilderContext.Configuration.UseApplicationInsights()) { loggingBuilder.AddApplicationInsights(hostBuilderContext.Configuration.GetApplicationInsightsInstrumentationKey()); } }
public static ILoggingBuilder AddLogging(this ILoggingBuilder loggingBuilder) { loggingBuilder.AddFilter <ApplicationInsightsLoggerProvider>("", LogLevel.Trace); loggingBuilder.AddAzureWebAppDiagnostics(); loggingBuilder.AddApplicationInsights(); return(loggingBuilder); }
internal static void ConfigureApplicationInsights(HostBuilderContext context, ILoggingBuilder builder) { string appInsightsKey = context.Configuration[EnvironmentSettingNames.AppInsightsInstrumentationKey]; // Initializing AppInsights services during placeholder mode as well to avoid the cost of JITting these objects during specialization if (!string.IsNullOrEmpty(appInsightsKey) || SystemEnvironment.Instance.IsPlaceholderModeEnabled()) { builder.AddApplicationInsights(o => o.InstrumentationKey = appInsightsKey); builder.Services.ConfigureOptions <ApplicationInsightsLoggerOptionsSetup>(); builder.Services.AddSingleton <ISdkVersionProvider, FunctionsSdkVersionProvider>(); if (SystemEnvironment.Instance.IsPlaceholderModeEnabled()) { for (int i = 0; i < builder.Services.Count; i++) { // This is to avoid possible race condition during specialization when disposing old AI listeners created during placeholder mode. if (builder.Services[i].ServiceType == typeof(ITelemetryModule) && builder.Services[i].ImplementationFactory?.Method.ReturnType == typeof(DependencyTrackingTelemetryModule)) { builder.Services.RemoveAt(i); break; } } // Disable auto-http tracking when in placeholder mode. builder.Services.Configure <ApplicationInsightsLoggerOptions>(o => { o.HttpAutoCollectionOptions.EnableHttpTriggerExtendedInfoCollection = false; }); } } }
private static void LoggingConfig(HostBuilderContext ctx, ILoggingBuilder builder) { builder.AddNLog(); builder.AddConsole(); builder.AddApplicationInsights(ctx.Configuration.GetSection("ApplicationInsight").Get <AppInsightsSection>().InstrumentationKey); builder.AddConfiguration(ctx.Configuration.GetSection("Logging")); builder.Services.AddSingleton(srvProvider => srvProvider.GetRequiredService <ILoggerFactory>().CreateLogger("AzureServiceBusDemo")); }
/// <summary> /// Adds an ApplicationInsights logger named 'ApplicationInsights' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <param name="configureApplicationInsightsLoggerOptions">Action to configure ApplicationInsights logger.</param> public static ILoggingBuilder AddApplicationInsights( this ILoggingBuilder builder, Action <ApplicationInsightsLoggerOptions> configureApplicationInsightsLoggerOptions) { return(builder.AddApplicationInsights( (telemetryConfiguration) => { }, configureApplicationInsightsLoggerOptions)); }
/// <summary> /// Adds an ApplicationInsights logger named 'ApplicationInsights' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <param name="instrumentationKey">Application insights instrumentation key.</param> /// <returns>Logging builder with Application Insights added to it.</returns> public static ILoggingBuilder AddApplicationInsights( this ILoggingBuilder builder, string instrumentationKey) { return(builder.AddApplicationInsights( (telemetryConfiguration) => telemetryConfiguration.InstrumentationKey = instrumentationKey, (applicationInsightsOptions) => { })); }
/// <summary> /// Adds an ApplicationInsights logger named 'ApplicationInsights' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <param name="instrumentationKey">Application insights instrumentation key.</param> /// <param name="configureApplicationInsightsLoggerOptions">Action to configure ApplicationInsights logger.</param> /// <returns>Logging builder with Application Insights added to it.</returns> public static ILoggingBuilder AddApplicationInsights( this ILoggingBuilder builder, string instrumentationKey, Action <ApplicationInsightsLoggerOptions> configureApplicationInsightsLoggerOptions) { return(builder.AddApplicationInsights( (telemetryConfiguration) => telemetryConfiguration.InstrumentationKey = instrumentationKey, configureApplicationInsightsLoggerOptions)); }
protected virtual void ConfigureLogging(ILoggingBuilder builder) { builder.AddApplicationInsights(options => { options.FlushOnDispose = true; options.IncludeScopes = false; options.TrackExceptionsAsExceptionTelemetry = true; }); }
public static ILoggingBuilder AddInfrastructureLogging(this ILoggingBuilder logging, WebHostBuilderContext hostingContext) { logging.AddApplicationInsights(); logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); logging.AddConsole(); logging.AddDebug(); return(logging); }
public static void ApplicationInsightsConfiguration(HostBuilderContext context, ILoggingBuilder options) { var appInsightsKey = context.Configuration["AppInsightsInstrumentationKey"]; if (!string.IsNullOrEmpty(appInsightsKey)) { options.AddApplicationInsights(o => o.InstrumentationKey = appInsightsKey); } }
public void AddCloudLogger(ILoggingBuilder builder, AzureOptions options) { Trace.TraceInformation("Adding Application Insights Logging"); builder.AddApplicationInsights(o => { o.IncludeScopes = true; o.TrackExceptionsAsExceptionTelemetry = true; }); }
/// <summary> /// Adds an ApplicationInsights logger named 'ApplicationInsights' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <param name="instrumentationKey">Application insights instrumentation key.</param> /// <returns>Logging builder with Application Insights added to it.</returns> public static ILoggingBuilder AddApplicationInsights(this ILoggingBuilder builder, string instrumentationKey) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.AddApplicationInsights( (telemetryConfiguration) => telemetryConfiguration.InstrumentationKey = instrumentationKey, (applicationInsightsOptions) => { })); }
public static void ConfigureLogging(HostBuilderContext hostBuilderContext, ILoggingBuilder loggingBuilder) { var telemetryOptions = hostBuilderContext.Configuration.GetSampleAppOptions(); if (telemetryOptions.UseApplicationInsights) { loggingBuilder.AddApplicationInsights(telemetryOptions.ApplicationInsightsInstrumentationKey); } loggingBuilder.AddConsole((options) => { options.IncludeScopes = true; }); }
/// <summary> /// Adds an ApplicationInsights logger named 'ApplicationInsights' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <param name="configureApplicationInsightsLoggerOptions">Action to configure ApplicationInsights logger.</param> public static ILoggingBuilder AddApplicationInsights( this ILoggingBuilder builder, Action <ApplicationInsightsLoggerOptions> configureApplicationInsightsLoggerOptions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.AddApplicationInsights( (telemetryConfiguration) => { }, configureApplicationInsightsLoggerOptions)); }
public static void AddLogging( this ILoggingBuilder builder, WebHostBuilderContext hostingContext, string environment) { builder.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); builder.AddConsole(); builder.AddDebug(); builder.AddApplicationInsights(); builder.AddFilter <ApplicationInsightsLoggerProvider>("", GetLogLevel(environment)); builder.AddFilter <ApplicationInsightsLoggerProvider>("Microsoft.EntityFrameworkCore", LogLevel.Warning); }
internal static void ConfigureApplicationInsights(HostBuilderContext context, ILoggingBuilder builder) { string appInsightsKey = context.Configuration[EnvironmentSettingNames.AppInsightsInstrumentationKey]; if (!string.IsNullOrEmpty(appInsightsKey)) { builder.AddApplicationInsights(o => o.InstrumentationKey = appInsightsKey); builder.Services.ConfigureOptions <ApplicationInsightsLoggerOptionsSetup>(); // Override the default SdkVersion with the functions key builder.Services.AddSingleton <TelemetryClient>(provider => { TelemetryConfiguration configuration = provider.GetService <TelemetryConfiguration>(); TelemetryClient client = new TelemetryClient(configuration); client.Context.GetInternalContext().SdkVersion = $"azurefunctions: {ScriptHost.Version}"; return(client); }); } }
private void ConfigureLogging(ILoggingBuilder builder) { if (_runningInContainer || _isDevelopment) { builder = builder.AddConsole(o => { o.DisableColors = _runningInContainer; o.Format = ConsoleLoggerFormat.Systemd; }); } else { var applicationInsightsInstrumentationKey = Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"]; if (!string.IsNullOrWhiteSpace(applicationInsightsInstrumentationKey)) { builder = builder.AddApplicationInsights(applicationInsightsInstrumentationKey); } } builder .AddFilter("Microsoft", LogLevel.Warning) // This disables verbose logging from the .NET system .AddFilter("System", LogLevel.Warning) // from causing noise to my actual logs. .SetMinimumLevel(LogLevel.Trace); }
public static ILoggingBuilder AddApplicationInsightsLogging(this ILoggingBuilder loggingBuilder) { loggingBuilder.AddFilter <ApplicationInsightsLoggerProvider>(string.Empty, Trace); loggingBuilder.AddApplicationInsights(); return(loggingBuilder); }
/// <summary> /// Different types of logging are enabled based on the MyProjectSettings:EnabledLoggers: [ "File", "Console", "Debug" ] /// </summary> /// <param name="hostingContext">Generic host builder context used to configure the application</param> /// <param name="logging">Interface used to configure logging providers</param> /// <param name="applicationSecrets">Interface used to access all properties in the "ApplicationSecrets" property of the appsettings.json file</param> /// <param name="applicationSetupConfiguration">Interface used to access all properties in the "InitialConfiguration" property of the appsettings.json file</param> public static void ConfigureCustomLogging(HostBuilderContext hostingContext, ILoggingBuilder logging, IApplicationSecrets applicationSecrets, IApplicationSetupConfiguration applicationSetupConfiguration) { logging.ClearProviders(); if (applicationSetupConfiguration.IsLoggingEnabled) { logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); if (applicationSetupConfiguration.IsLoggerEnabled(EnabledLoggersEnum.Debug)) { logging.AddDebug(); } if (applicationSetupConfiguration.IsLoggerEnabled(EnabledLoggersEnum.Console)) { logging.AddConsole(); } if (applicationSetupConfiguration.IsLoggerEnabled(EnabledLoggersEnum.File)) { // The FileLogger will be configured for log4Net local logging during development. // It will contain the instrumentation key for Azure Application Insights when // the connection information is coming from KeyVault string logConnectionString = applicationSecrets.ConnectionString("FileLogger"); Guid gKey; if (!string.IsNullOrEmpty(applicationSetupConfiguration.KeyVaultKey) && Guid.TryParse(logConnectionString, out gKey)) { string instrumentationKey = logConnectionString; logging.AddApplicationInsights(instrumentationKey); // Adding the filter below to ensure logs of all severities // is sent to ApplicationInsights. logging.AddFilter <Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider> ("RemoteLogging", LogLevel.Debug); } else // No local KeyVaultKey or environment setting for InitialConfiguration_KeyVaultKey found, so use local Log4Net logging { // Must set the log name prior to adding Log4Net because it must know this value // before it loads the config file. It does pattern matching and substitution on the filename. string logPath = null; string logName = null; if (!string.IsNullOrEmpty(logConnectionString)) { string[] logParts = logConnectionString.Split(";"); logPath = logParts[0]?.Replace("LogPath=", ""); logName = logParts[1]?.Replace("LogName=", ""); } if (!string.IsNullOrEmpty(logPath)) { if (!Directory.Exists(logPath)) { Directory.CreateDirectory(logPath); } logName = $"{logPath}\\{logName}"; } log4net.GlobalContext.Properties["LogName"] = logName; logging.AddLog4Net("log4net.config"); } } } }
/// <summary> /// Adds an ApplicationInsights logger named 'ApplicationInsights' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <returns>Logging builder with Application Insights added to it.</returns> public static ILoggingBuilder AddApplicationInsights(this ILoggingBuilder builder) { return(builder.AddApplicationInsights((applicationInsightsOptions) => { })); }
/// <summary> /// Registers Application Insights and <see cref="ApplicationInsightsLoggerProvider"/> with an <see cref="ILoggingBuilder"/>. /// </summary> public static ILoggingBuilder AddApplicationInsights( this ILoggingBuilder builder) { return(builder.AddApplicationInsights(null)); }