Entity Framework Core ha un motore di logging potente, ma leggermente più complesso da utilizzare rispetto a Entity Framework 6. Entity Framework Core richiede la creazione di una factory che è responsabile della creazione della vera classe di logging. La factory deve poi essere iniettata nel contesto che la utilizza per loggare informazioni.
Il primo passo per creare un logger custom consiste nel creare la classe di logging che come unico requisito ha quello di implementare l'interfaccia ILogger.
class MyLogger : ILogger
{
public bool IsEnabled(LogLevel logLevel) => 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));
}
public IDisposable BeginScope<TState>(TState state) => null;
}La parte di logging viene effettuata nel metodo Log. In questo caso scriviamo su file, ma possiamo scrivere su un altro database, invocare un servizio, scrivere in cache e molto altro ancora.
A questo punto dobbiamo creare la factory che crea la classe MyLogger e che viene poi iniettata nel contesto. La classe deve implementare l'interfaccia ILoggerProvider.
public class MyLoggerProvider : ILoggerProvider
{
public ILogger CreateLogger(string categoryName)
{
return new MyLogger();
}
public void Dispose() {}Ora non rimane che iniettare la la factory in fase di inizializzazione del contesto.
using (var ctx = new MyContext())
{
var serviceProvider = ctx.GetInfrastructure<IServiceProvider>();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
loggerFactory.AddProvider(new MyLoggerProvider());
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Leggere i parametri da riga di comando in una file based app .NET
Applicare il progressive enhancement in applicazioni web
Creare una UI per i tool MCP con resource e Azure Functions
Cache temporanea in Javascript con oggetti
Rendere affidabile lo scale out su Azure App Service
GitHub Quick Review per la valutazione dello stato di compliance dell'organizzazione aziendale
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Controllare la velocità di spostamento su una pagina HTML
Integrare LLM alle nostre applicazioni in .NET con MCP
Response streaming con Blazor e .NET 10
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2026 - Milano
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- "GitHub Copilot e .NET: progettare un repository per lo sviluppo agentico" con Cristian Civera. Ti aspettiamo alla .NET Conference Italia 2026, il 18 novembre a Milano. Evento gratuito con registrazione. #dotnet #GitHubCopilot https://aspit.co/netconf-26


