public static void ConfigureLogging(this DbContext db, Action <String> logger,
                                                LoggingCategories categories = LoggingCategories.All)
            {
                var serviceProvider = db.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = (LoggerFactory)serviceProvider.GetService(typeof(ILoggerFactory));

                if (categories == LoggingCategories.SQL)
                {
                    var SqlCategories = new List <string> {
                        DbLoggerCategory.Database.Command.Name,
                        DbLoggerCategory.Query.Name,
                        DbLoggerCategory.Update.Name
                    };
                    LogProvider.CreateOrModifyLoggerForDbContext(db.GetType(),
                                                                 loggerFactory,
                                                                 logger,
                                                                 (c, l) => SqlCategories.Contains(c));
                }
                else if (categories == LoggingCategories.All)
                {
                    LogProvider.CreateOrModifyLoggerForDbContext(db.GetType(),
                                                                 loggerFactory, logger,
                                                                 (c, l) => true);
                }
            }
            public static void ConfigureLogging(this DbContext db, Action <String> logger, Func <string, LogLevel, bool> filter)
            {
                var serviceProvider = db.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = (ILoggerFactory)serviceProvider.GetService(typeof(ILoggerFactory));

                LogProvider.CreateOrModifyLoggerForDbContext(db.GetType(), loggerFactory, logger, filter);
            }
Exemple #3
0
        public static void ConfigureLogging(this DbContext db, Action <string> logger, LoggingCategories categories = LoggingCategories.All)
        {
            var loggerFactory = (LoggerFactory)db.GetInfrastructure().GetService(typeof(ILoggerFactory));

            switch (categories)
            {
            case LoggingCategories.Sql: {
                var sqlCategories = new List <string> {
                    DbLoggerCategory.Database.Command.Name,
                    DbLoggerCategory.Query.Name,
                    DbLoggerCategory.Update.Name
                };
                LogProvider.CreateOrModifyLoggerForDbContext(db.GetType(), loggerFactory, logger, (c, l) => sqlCategories.Contains(c));
                break;
            }

            case LoggingCategories.All: {
                LogProvider.CreateOrModifyLoggerForDbContext(db.GetType(), loggerFactory, logger, (c, l) => true);
                break;
            }
            }
        }