dotnet-spanner-entity-framework icon indicating copy to clipboard operation
dotnet-spanner-entity-framework copied to clipboard

LoggerFactory does not work while using SpannerMigrationCommandExecutor

Open olavloite opened this issue 4 years ago • 1 comments

(Copied from other repository)

Here is sample of my log provider:

    public class MyLoggerProvider : ILoggerProvider
    {
        public ILogger CreateLogger(string categoryName)
        {
            return new MyLogger();
        }

        public void Dispose()
        { }

        private class MyLogger : ILogger
        {
            public bool IsEnabled(LogLevel logLevel)
            {
                return true;
            }

            public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
            {
                File.AppendAllText(@"C:\temp\log.txt", formatter(state, exception));
                Console.WriteLine(formatter(state, exception));
            }

            public IDisposable BeginScope<TState>(TState state)
            {
                return null;
            }
        }
    }

Configure logger:

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSpanner("Data Source=projects/appdev-soda-spanner-staging/instances/orm-test-instance/databases/test_migration_db_4");
            }

            var lf = new LoggerFactory();
            lf.AddProvider(new MyLoggerProvider());
            optionsBuilder.UseLoggerFactory(lf);
        }

In case of removing SpannerMigrationCommandExecutor from service collection it loges as expected.

olavloite avatar Jan 29 '21 07:01 olavloite

This is known issue in EF Core and has been fix in EF Core 5.

laljikanjareeya avatar Feb 22 '21 05:02 laljikanjareeya