예제 #1
0
        private static void InitLogger(ICustomConfigurationProvider configurationProvider)
        {
            var baseDir = configurationProvider.LoggerDirectory;

            if (string.IsNullOrEmpty(baseDir))
            {
                baseDir = Path.Combine(configurationProvider.ContentRootPath, "Logs");
            }

            var logFilePath = Path.Combine(baseDir, "log.txt");

            var configuration = new LoggerConfiguration()
                                .Enrich.With <ThreadIdEnricher>()
                                .MinimumLevel.Information()
                                //.WriteTo.Async(a => a.MSSqlServer(configurationProvider.ConnectionString, "Serilog", restrictedToMinimumLevel:LogEventLevel.Debug, autoCreateSqlTable:true))
                                .WriteTo.Async(a => a.RollingFile(logFilePath, LogEventLevel.Debug, configurationProvider.LoggerFileTemplate, null, 1073741824, 31, null, false, true));


            configuration = configuration.WriteTo.LiterateConsole(LogEventLevel.Verbose, configurationProvider.LoggerConsoleTemplate);


            var seqServerPath = configurationProvider.LoggerSeqUrl;

            if (!string.IsNullOrEmpty(seqServerPath))
            {
                configuration = configuration.WriteTo.Async(a => a.Seq(seqServerPath));
            }

            var logger = configuration.CreateLogger();

            Serilog.Log.Logger = logger;

            Log.Instance = logger;
        }
예제 #2
0
        public void ApplyMigrations(ICustomConfigurationProvider config)
        {
            Log.Logger().Information("Migration Manager is strating ....");

            var migrations = Context.Database.GetPendingMigrations().ToList();

            if (migrations.Any())
            {
                Log.Logger().Information("Found {number} pending migrations", migrations.Count);
                migrations.ForEach(m => Log.Logger().Information("{name}", m));

                if (config.ApplyMigrations)
                {
                    Log.Logger().Information("Migration is enbled");
                    Context.Database.Migrate();
                    Log.Logger().Information("Migration is applied ");
                }
                else
                {
                    Log.Logger().Information("Migration is disabled ");
                }
            }
            else
            {
                Log.Logger().Information("No migrations Found", migrations.Count);
            }
        }
예제 #3
0
 public static void Configure(IServiceCollection services, ICustomConfigurationProvider ConfigurationProvider)
 {
     services.AddScoped <IApplicationUserService, ApplicationUserService>();
     services.AddScoped <IApplicationUserRepository, ApplicationUserRepository>();
     services.AddScoped <IRequestRepository, RequestRepository>();
     services.AddScoped <IRequestGetService, RequestGetService>();
     services.AddScoped <IFileService, FileService>();
     services.AddScoped <IAuthService, AuthService>();
     services.AddScoped <IAuthRepository, AuthRepository>();
     services.AddScoped <IFileRepository, FileRepository>();
     services.AddScoped <ISetPasswordIdentity, SetPasswordIdentity>();
     services.AddScoped <IRequestTypesService, RequestTypesService>();
     services.AddScoped <IRequestTypesRepository, RequestTypesRepository>();
     services.AddScoped <IProjectService, ProjectService>();
     services.AddScoped <IProjectRepository, ProjectRepository>();
     services.AddScoped <IFolderVersion, FolderVersion>();
     services.AddScoped <ApplicationContext>();
     services.AddScoped <MigrationManager>();
     services.AddScoped <BasicSeedManager>();
     services.AddScoped <ITransactionManager, TransactionManager>();
 }
예제 #4
0
        public Startup(IHostingEnvironment env)
        {
            try
            {
                var builder = new ConfigurationBuilder()
                              .SetBasePath(env.ContentRootPath)
                              .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                              .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                              .AddEnvironmentVariables();
                var configuration = builder.Build();

                ConfigurationProvider = new CustomConfigurationProvider(configuration, env.ContentRootPath);

                LoggerConfig.Configure(ConfigurationProvider);
            }
            catch (Exception e)
            {
                Log.Logger().Error(e, "Application failed to start");
                throw;
            }
        }
예제 #5
0
 public static void Configure(ICustomConfigurationProvider configurationProvider)
 {
     InitLogger(configurationProvider);
 }