Если я добавлю службы журналов в контейнер (в ASP.NET 5 RC1):
services.AddSingleton<ILoggerFactory>();
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
//or just services.AddLogging();
Затем я могу использовать Logger в своем слое приложения:
class MyAppLogicService
{
public MyAppLogicService(ILogger<MyAppLogicService> logger)
{
logger.LogInformation("Hey");
}
}
Но в этом случае мои события logger.LogInformation() будут смешиваться с несущественными событиями информации о каркасе (согласно разработчикам до 10 на запрос!).
Рекомендуется выполнять ведение журнала приложений на уровне ваше приложение и его API, а не на уровне структуры. framework уже имеет встроенный журнал, в который можно установив соответствующий уровень детализации ведения журнала.
Что это значит? Означает ли это, что использование ILogger/ILoggerFactory в клиентском коде (логика приложения) не рекомендуется?
Что такое элегантное решение для отдельного ведения журнала на уровне приложений из ведения журнала уровня? На данный момент я использую Serilog и фильтрую ContextSource, но это далеко не элегантно...