Как мне регистрироваться везде в программе, не объявляя параметр ILogger в каждом классе? Я бы хотел, чтобы лучшие практики регистрировались везде внутри программы.
MyClass(ILogger<MyClass> logger)
{
_logger = logger;
}
Должен ли я использовать статический класс, как описано здесь ?
public class ApplicationLogging
{
private static ILoggerFactory _Factory = null;
public static void ConfigureLogger(ILoggerFactory factory)
{
factory.AddDebug(LogLevel.None).AddStackify();
factory.AddFile("logFileFromHelper.log"); //serilog file extension
}
public static ILoggerFactory LoggerFactory
{
get
{
if (_Factory == null)
{
_Factory = new LoggerFactory();
ConfigureLogger(_Factory);
}
return _Factory;
}
set { _Factory = value; }
}
public static ILogger CreateLogger() => LoggerFactory.CreateLogger();
}