public MigrationsOperations( [NotNull] ILoggerProvider loggerProvider, [NotNull] string assemblyName, [NotNull] string startupAssemblyName, [CanBeNull] string environment, [NotNull] string projectDir, [NotNull] string rootNamespace) { Check.NotNull(loggerProvider, nameof(loggerProvider)); Check.NotEmpty(assemblyName, nameof(assemblyName)); Check.NotEmpty(startupAssemblyName, nameof(startupAssemblyName)); Check.NotNull(projectDir, nameof(projectDir)); Check.NotNull(rootNamespace, nameof(rootNamespace)); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); _loggerProvider = loggerProvider; _logger = new LazyRef<ILogger>(() => loggerFactory.CreateCommandsLogger()); _projectDir = projectDir; _rootNamespace = rootNamespace; _contextOperations = new DbContextOperations( loggerProvider, assemblyName, startupAssemblyName, environment); var startup = new StartupInvoker(startupAssemblyName, environment); _servicesBuilder = new DesignTimeServicesBuilder(startup); }
public Program(IRuntimeEnvironment runtimeEnv) { var loggerFactory = new LoggerFactory(); CommandOutputProvider = new CommandOutputProvider(runtimeEnv); loggerFactory.AddProvider(CommandOutputProvider); Logger = loggerFactory.CreateLogger<Program>(); }
public void IsEnabled_IgnoresExceptionInIntermediateLoggers() { // Arrange var store = new List<string>(); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(new CustomLoggerProvider("provider1", ThrowExceptionAt.None, store)); loggerFactory.AddProvider(new CustomLoggerProvider("provider2", ThrowExceptionAt.IsEnabled, store)); loggerFactory.AddProvider(new CustomLoggerProvider("provider3", ThrowExceptionAt.None, store)); var logger = loggerFactory.CreateLogger("Test"); // Act var aggregateException = Assert.Throws<AggregateException>(() => logger.LogInformation("Hello!")); // Assert Assert.Equal(new[] { "provider1.Test-Hello!", "provider3.Test-Hello!" }, store); Assert.NotNull(aggregateException); Assert.Equal("An error occurred while writing to logger(s).", aggregateException.Message); Assert.Equal(1, aggregateException.InnerExceptions.Count); var exception = aggregateException.InnerExceptions[0]; Assert.Equal("provider2.Test-Error occurred while checking if logger is enabled.", exception.Message); }
public void BeginScope_IgnoresExceptionInIntermediateLoggersAndThrowsAggregateException() { // Arrange var store = new List<string>(); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(new CustomLoggerProvider("provider1", ThrowExceptionAt.None, store)); loggerFactory.AddProvider(new CustomLoggerProvider("provider2", ThrowExceptionAt.BeginScope, store)); loggerFactory.AddProvider(new CustomLoggerProvider("provider3", ThrowExceptionAt.None, store)); var logger = loggerFactory.CreateLogger("Test"); // Act var aggregateException = Assert.Throws<AggregateException>(() => logger.BeginScope("Scope1")); // Assert Assert.Equal(new[] { "provider1.Test-Scope1", "provider3.Test-Scope1" }, store); Assert.NotNull(aggregateException); Assert.Equal("An error occurred while writing to logger(s).", aggregateException.Message); Assert.Equal(1, aggregateException.InnerExceptions.Count); var exception = aggregateException.InnerExceptions[0]; Assert.Equal("provider2.Test-Error occurred while creating scope.", exception.Message); }
public void Log_AggregatesExceptionsFromMultipleLoggers() { // Arrange var store = new List<string>(); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(new CustomLoggerProvider("provider1", ThrowExceptionAt.Log, store)); loggerFactory.AddProvider(new CustomLoggerProvider("provider2", ThrowExceptionAt.Log, store)); var logger = loggerFactory.CreateLogger("Test"); // Act var aggregateException = Assert.Throws<AggregateException>(() => logger.LogInformation("Hello!")); // Assert Assert.Empty(store); Assert.NotNull(aggregateException); Assert.Equal("An error occurred while writing to logger(s).", aggregateException.Message); var exceptions = aggregateException.InnerExceptions; Assert.Equal(2, exceptions.Count); Assert.Equal("provider1.Test-Error occurred while logging data.", exceptions[0].Message); Assert.Equal("provider2.Test-Error occurred while logging data.", exceptions[1].Message); }