public static ILoggingBuilder AddKRFLogger(this ILoggingBuilder builder, IConfiguration configuration) { if (configuration == null || builder == null) { throw new Exception("Missing configuration or log builder"); } KRFLogConfiguration settings = configuration.GetSection(KRFApiSettings.KRFLoggerConfig_Key).Get <KRFLogConfiguration>() ?? null; return(builder.AddKRFLogger(settings, configuration)); }
public static ILoggingBuilder AddKRFLogger(this ILoggingBuilder builder, KRFLogConfiguration settings, IConfiguration configuration) { if (settings == null) { throw new Exception("Configuration is missing KRFLogger settings"); } if (settings.KRFLogDestination == null || settings.KRFLogDestination.Length == 0) { throw new Exception("Configuration is missing KRFLogDestination settings on KRFLogger"); } builder.ClearProviders(); builder.AddConfiguration(configuration.GetSection(KRFApiSettings.Logging_Key)); if (settings.KRFLogDestination.Any(ld => ld.Equals(KRFLogDestinationEnum.ToConsole))) { builder.AddConsole(); } if (settings.KRFLogDestination.Any(ld => ld.Equals(KRFLogDestinationEnum.ToDebug))) { builder.AddDebug(); } if (settings.KRFLogDestination.Any(ld => ld.Equals(KRFLogDestinationEnum.ToEvents))) { builder.AddEventLog(); } if (settings.KRFLogDestination.Any(ld => ld.Equals(KRFLogDestinationEnum.ToEventSource))) { builder.AddEventSourceLogger(); } if (settings.KRFLogDestination.Any(ld => ld.Equals(KRFLogDestinationEnum.ToFile)) && settings.KRFFileLogger != null) { builder.AddKRFLogToFileLogger(o => { o = settings.KRFFileLogger; }); } if (settings.KRFLogDestination.Any(ld => ld.Equals(KRFLogDestinationEnum.ToServer))) { throw new Exception("Logging to server not implemented"); //builder.AddKRFLogToServerLogger( loggerConfig.GetSection( KRFApiSettings.KRFServerLoggerConfig_Key ) ); } return(builder); }