Example #1
0
        public static void Main(string[] args)
        {
            var logDbConnection = @"Server=140.143.7.32,1433\\mssql2012;database=GeekBolgDb;uid=sa;pwd=sa2012LJ";
            var logTable        = "Logs";
            var opts            = new ColumnOptions
            {
                AdditionalDataColumns = new Collection <DataColumn>
                {
                    new DataColumn {
                        DataType = typeof(string), ColumnName = "User"
                    },
                    new DataColumn {
                        DataType = typeof(string), ColumnName = "Class"
                    },
                    new DataColumn {
                        DataType = typeof(string), ColumnName = "Url"
                    }
                }
            };

            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
                         .MinimumLevel.Override("System", LogEventLevel.Warning)
                         .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
                         .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
                         .Enrich.FromLogContext()
                         .WriteTo.Console()
                         .WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day, outputTemplate: "[{Timestamp:HH:mm:ss} {Level} {Class} {Url} {User}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}")
                         .WriteTo.MSSqlServer(logDbConnection, logTable, columnOptions: opts, autoCreateSqlTable: true, restrictedToMinimumLevel: LogEventLevel.Information)
                         //.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                         .CreateLogger();

            //CreateWebHostBuilder(args).Build().Run();

            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services      = scope.ServiceProvider;
                var loggerFactory = services.GetRequiredService <ILoggerFactory>();
                try
                {
                    var context = services.GetRequiredService <ProjectDbContext>();
                    ProjectContextSeed.SeedAsync(context, loggerFactory).Wait();
                }
                catch (Exception e)
                {
                    var logger = loggerFactory.CreateLogger <Program>();
                    logger.LogError(e, "初始化数据失败!");
                }
            }

            host.Run();
        }
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build()

            .MigrateDatabase <ProjectContext>((context, services) =>
            {
                var logger = services.GetService(typeof(ILogger <ProjectContextSeed>)) as ILogger <ProjectContextSeed>;

                ProjectContextSeed
                .SeedAsync(context, logger)
                .Wait();
            })

            .Run();
        }