private static async Task ConnectAsync(bool automaticallyReconnect = false) { var url = AskUser("Bot url:"); var appId = AskUser("Bot app id:"); var appPassword = AskUser("Bot app password:"******"channelId", "Test" } }; if (!string.IsNullOrEmpty(appId) && !string.IsNullOrEmpty(appPassword)) { var credentials = new MsalAppCredentials(appId, appPassword, null, appId); var token = await credentials.GetTokenAsync(); headers.Add("Authorization", $"Bearer {token}"); } var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>(string.Empty, null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); // Improvement opportunity: expose command / argument to control log level. var loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = LogLevel.Debug }); _cancellationSource = new CancellationTokenSource(); _client = new WebSocketClient(url, new ConsoleRequestHandler(), logger: loggerFactory.CreateLogger("WebSocketClient")); _client.Disconnected += Client_Disconnected; _clientTask = _client.ConnectAsync(headers, _cancellationSource.Token); }
public void Setup() { var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new [] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = LogLevel.Trace }); }
public LoggingHandler() { var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); consoleLoggerProvider = new ConsoleLoggerProvider(optionsMonitor); LoggerFactory = new LoggerFactory(new[] { consoleLoggerProvider }, new LoggerFilterOptions { MinLevel = LogLevel.Information }); }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); var loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = LogLevel.Information }); optionsBuilder .UseSqlServer(connectionString) .UseLoggerFactory(loggerFactory) //tie-up DbContext with LoggerFactory object .EnableSensitiveDataLogging(); }
private ILoggerProvider GetLoggerProvider() { var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>(string.Empty, opts => { }); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>( new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>( optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); return(new ConsoleLoggerProvider(optionsMonitor)); }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { #if DEBUG var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); var loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = Microsoft.Extensions.Logging.LogLevel.Trace }); optionsBuilder.UseLoggerFactory(loggerFactory) .EnableSensitiveDataLogging(); #endif }
/// <summary> /// Registers an action used to configure a particular type of options. /// Note: These are run before all <seealso cref="PostConfigure{TOptions}(IUnityContainer, Action{TOptions})"/>. /// </summary> /// <typeparam name="TOptions">The options type to be configured.</typeparam> /// <param name="container">The <see cref="IUnityContainer"/> to add the services to.</param> /// <param name="name">The name of the options instance.</param> /// <param name="configureOptions">The action used to configure the options.</param> /// <returns>The <see cref="IUnityContainer"/> so that additional calls can be chained.</returns> public static IUnityContainer Configure <TOptions>(this IUnityContainer container, string name, Action <TOptions> configureOptions) where TOptions : class { if (container == null) { throw new ArgumentNullException(nameof(container)); } if (configureOptions == null) { throw new ArgumentNullException(nameof(configureOptions)); } var value = new ConfigureNamedOptions <TOptions>(name, configureOptions); container.RegisterInstance <IConfigureOptions <TOptions> >(Guid.NewGuid().ToString(), value); return(container); }
static void Main(string[] args) { // Logging setup: var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); var loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = LogLevel.Information }); var logger = loggerFactory.CreateLogger <CarServiceLoggingDecorator>(); var carService = new CarServiceLoggingDecorator(new CarService(), logger); var carDetails1 = carService.GetCarDetails("Hyundai I30"); var carDetails2 = carService.GetCarDetails("BMW 318i"); carDetails1.PrintDetails(); carDetails2.PrintDetails(); }
public static IDataProtectionBuilder PersistKeysToRedis(this IDataProtectionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.TryAddSingleton <IXmlRepository, CloudFoundryRedisXmlRepository>(); builder.Services.AddSingleton <IConfigureOptions <KeyManagementOptions> >((p) => { var config = new ConfigureNamedOptions <KeyManagementOptions>(Options.DefaultName, (options) => { options.XmlRepository = p.GetRequiredService <IXmlRepository>(); }); return(config); }); return(builder); }
static void Main(string[] args) { var _configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var _optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { _configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var _optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(_optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); var _loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(_optionsMonitor) }, new LoggerFilterOptions { MinLevel = LogLevel.Information }); var optionsBuilder = new DbContextOptionsBuilder <LinqPracticeContext>(); optionsBuilder.UseLoggerFactory(_loggerFactory); optionsBuilder.EnableSensitiveDataLogging(); optionsBuilder.UseSqlServer(ConnectionString); using (var context = new LinqPracticeContext(optionsBuilder.Options)) { } Console.ReadLine(); }
static void SimpleRun() { var options = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { options }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); using (var consoleLoggerProvider = new ConsoleLoggerProvider(optionsMonitor)) using (var loggerFactory = new LoggerFactory(new[] { consoleLoggerProvider }, new LoggerFilterOptions { MinLevel = LogLevel.Information })) { var logger = loggerFactory.CreateLogger("Test"); var updater = CorridContext.Default as ICorridContextUpdater; (CorridContext.Default as DefaultCorridContext)?.AddEventHandler(new CorridContextUpdaterLogger(logger)); updater.BeginExecutionScope("X1234"); updater.EndExecutionScope(); } }
public ProviderBuilder(string pathName, string fileName) { var fileConfigureNamedOptions = new ConfigureNamedOptions <FileLoggerOptions> ( string.Empty, options => { options.FilePath = pathName; options.FileName = fileName; } ); var fileOptionsFactory = new OptionsFactory <FileLoggerOptions> ( new[] { fileConfigureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <FileLoggerOptions> >() ); var fileOptionsManager = new OptionsManager <FileLoggerOptions>(fileOptionsFactory); FileLoggerProvider = new FileLoggerProvider(fileOptionsManager); }
private static void InitializeLogger() { // Here a method had been used that was marked as obsolete in Microsoft.Extensions.Logging 2.2 // and has been removed in version 3.0 -> this is the workaround for it. // Refactoring the whole thing to make use of dependencyInjection will become necessary at some // point in the future. var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("", null); var postConfigureOptions = Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >(); var setups = new [] { configureNamedOptions }; var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(setups, postConfigureOptions); var optionsChangeTokenSources = Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(); var optionsMonitorCache = new OptionsCache <ConsoleLoggerOptions>(); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, optionsChangeTokenSources, optionsMonitorCache); var loggerFilterOptions = new LoggerFilterOptions { MinLevel = LogLevel.Debug }; var consoleLoggerProvider = new ConsoleLoggerProvider(optionsMonitor); var loggerFactory = new LoggerFactory(new[] { consoleLoggerProvider }, loggerFilterOptions); ApplicationLogging.LoggerFactory = loggerFactory; Logger = ApplicationLogging.CreateLogger("Program"); }
private static ILoggerFactory GetDefaultFactory() { var configureNamedOptions = new ConfigureNamedOptions <ConsoleLoggerOptions>("Console", null); var optionsFactory = new OptionsFactory <ConsoleLoggerOptions>(new[] { configureNamedOptions }, Enumerable.Empty <IPostConfigureOptions <ConsoleLoggerOptions> >()); var optionsMonitor = new OptionsMonitor <ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty <IOptionsChangeTokenSource <ConsoleLoggerOptions> >(), new OptionsCache <ConsoleLoggerOptions>()); return(new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = TextWranglerConfig.DefaultLogLevel })); }