Código do SqlLoggerProvider não aparece nada no console, digitei os mesmo códigos. Porém não me retorna os SQLs no console.
Código do SqlLoggerProvider não aparece nada no console, digitei os mesmo códigos. Porém não me retorna os SQLs no console.
Olá, Luiz
Como está seu código? Pode comparar com este aqui, por favor?
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Logging;
using System;
namespace Alura.Loja.Testes.ConsoleApp
{
public class SqlLoggerProvider : ILoggerProvider
{
public static ILoggerProvider Create()
{
return new SqlLoggerProvider();
}
public ILogger CreateLogger(string categoryName)
{
if (categoryName == typeof(IRelationalCommandBuilderFactory).Fullname)
{
return new SqlLogger();
}
return new NullLogger();
}
public void Dispose(){
}
internal class NullLogger : ILogger
{
public IDisposable BeginScope<TState>(TState state)
{
return null;
}
public bool IsEnabled(LogLevel logLevel)
{
return true;
}
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception)
{
//não faz nada, caso esteja faltando algum parametro, você pode usar o auto complete do Visual Studio para montar esse método melhor.
}
}
public class SqlLogger : ILogger
{
public IDisposable BeginScope<TState>(TState state)
{
return null;
}
public bool IsEnabled(LogLevel logLevel)
{
return true;
}
public void Log<TState>(LogLevel logLevel,EventId eventId, TState state, Exception e)
{
Console.WriteLine("");
Console.WriteLine(formatter(state,exception));
Console.WriteLine("");
}
}
}
}