Se posso aggiungere servizi di registrazione di container (in ASP.NET 5 RC1):separazione e la registrazione di livello quadro in ASP.NET core
services.AddSingleton<ILoggerFactory>();
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
//or just services.AddLogging();
poi posso usare Logger nel mio strato di app:
class MyAppLogicService
{
public MyAppLogicService(ILogger<MyAppLogicService> logger)
{
logger.LogInformation("Hey");
}
}
Ma in questo caso i miei logger.LogInformation() eventi si mescoleranno con senza importanza eventi informativi quadro (secondo sviluppatori fino a 10 per ogni richiesta!).
ASP.NET 5 documentation states:
Si consiglia di eseguire la registrazione di applicazione a livello di vostra applicazione e le sue API, non a livello del quadro. Il framework dispone già di una registrazione incorporata che può essere abilitata semplicemente da impostando il livello di dettaglio di registrazione appropriato.
Cosa significa? Significa che usare ILogger/ILoggerFactory nel codice client (logica app) non è raccomandato?
Che cos'è una soluzione elegante per separare la registrazione a livello di app dalla registrazione a livello di struttura? Per ora sto usando Serilog e filtraggio da ContextSource, ma questo è tutt'altro che elegante ...