1
resposta

Código do SqlLoggerProvider não aparece nada 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.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

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("");
            }
        }
    }
}