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(); }