dotnet-spanner-entity-framework
dotnet-spanner-entity-framework copied to clipboard
LoggerFactory does not work while using SpannerMigrationCommandExecutor
(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.
This is known issue in EF Core and has been fix in EF Core 5.