コード例 #1
0
        public void Execute(string[] args, Action <IServiceCollection, IConfigurationRoot> configure, Action <IServiceProvider, string[]> start)
        {
            var configuration = ConfigurationRootBuilder.Build();
            // Add the framework services
            var serviceCollection = new ServiceCollection();

            configure(serviceCollection, configuration);
            var serviceProvider = serviceCollection.BuildServiceProvider();
            var logger          = serviceProvider.GetService <ILogger <ConsoleAppRunner> >();

            AppDomain.CurrentDomain.UnhandledException += (o, e) => logger.LogCritical(e.ExceptionObject.ToString());
            start(serviceProvider, args);
        }
コード例 #2
0
        public void Execute(string[] args, Action <IServiceCollection, IConfigurationRoot> configure, Action <IServiceProvider, string[]> start)
        {
            try
            {
                var configuration     = ConfigurationRootBuilder.Build();
                var serviceCollection = new ServiceCollection();

                Log.Logger = new LoggerConfiguration()
                             .ReadFrom.Configuration(configuration)
                             .CreateLogger();

                serviceCollection.AddLogging(builder =>
                {
                    builder.AddSerilog();
                });

                Log.Debug("Created the logger");

                configure(serviceCollection, configuration);
                _ServiceProvider = serviceCollection.BuildServiceProvider();

                Log.Debug("About to start the console app");

                start(_ServiceProvider, args);
            }
            catch (Exception ex)
            {
                _ServiceProvider.GetRequiredService <ILogger <ConsoleAppRunner> >()
                .LogCritical(ex.ToString());
            }
            finally
            {
                Log.Debug("About to close and flush the log");
                Log.CloseAndFlush();
            }
        }