예제 #1
0
        private void ConfigureLogging(IServiceCollection services)
        {
            services.AddLykkeLogging();

            var serilogConfigurator = new SerilogConfigurator();

#if DEBUG
            var configBuilder = new ConfigurationBuilder();
            configBuilder.AddJsonFile("serilogsettings.json", optional: false);
            serilogConfigurator.AddFromConfiguration(configBuilder.Build());
#else
            if (!string.IsNullOrWhiteSpace(_appSettings.Db.ConnectionString))
            {
                serilogConfigurator.AddAzureTable(
                    _appSettings.Db.ConnectionString,
                    "SettingsServiceLog");
            }

            if (!string.IsNullOrWhiteSpace(_appSettings.SlackNotificationsConnString) &&
                !string.IsNullOrWhiteSpace(_appSettings.SlackNotificationsQueueName))
            {
                serilogConfigurator.AddAzureQueue(
                    _appSettings.SlackNotificationsConnString,
                    _appSettings.SlackNotificationsQueueName);
            }
#endif
            serilogConfigurator.Configure();
        }
 public HoustonSettingsConfigurator(ServiceApiHoustonProperties properties)
 {
     this.properties = properties;
     Settings        = ApplicationSettings.LoadDefault("serviceApi.csf");
     Logger          = new SerilogLog(SerilogConfigurator.ConfigureLogger(Settings.GetString("LogDirectory")).WithConsole().CreateLogger());
     ConfigureContainer();
 }
예제 #3
0
        public override void SetUp(string suiteName, Assembly testAssembly, IEditableGroboTestContext suiteContext)
        {
            var settings = new BaseServiceSettings(suiteContext.Container.Get <IApplicationSettings>());

            SerilogConfigurator.ConfigureDefault(settings.LogDirectory);
            suiteContext.Container.Configurator.ForAbstraction <ILogger>().UseInstances(Log.Logger);
        }
예제 #4
0
        public static HostConfigurator UseLogging(this HostConfigurator hostConfigurator, IApplicationSettings applicationSettings)
        {
            var settings = new BaseServiceSettings(applicationSettings);

            SerilogConfigurator.ConfigureDefault(settings.LogDirectory);
            hostConfigurator.UseSerilog();
            return(hostConfigurator);
        }
예제 #5
0
 public static IHostBuilder UseDefaultNetDaemonLogging(this IHostBuilder hostBuilder)
 {
     return(hostBuilder
            .ConfigureWebHostDefaults(webbuilder =>
     {
         Log.Logger = SerilogConfigurator.Configure().CreateLogger();
         webbuilder.UseSerilog(Log.Logger);
     }));
 }
 public HoustonSettingsConfigurator(FrontApiHoustonProperties properties)
 {
     this.properties = properties;
     Settings        = new ApplicationSettingsBuilder()
                       .LoadFromLocalSettings("frontApi.csf")
                       .Build();
     Logger = new SerilogLog(SerilogConfigurator.ConfigureLogger(Settings.GetString("LogDirectory")).WithConsole().CreateLogger());
     ConfigureContainer();
 }
예제 #7
0
        public void UsingCode()
        {
            var sink = new MySink();

            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Sink(sink)
                         .CreateLogger();
            SerilogConfigurator.Configure();

            Configure.With()
            .DefaultBuilder();

            Assert.IsNotEmpty(sink.LogEvents);
        }
        public static void Configure(this IContainer container)
        {
            var applicationSettings = ApplicationSettings.LoadDefault("actualizer.csf");
            var settings            = new BaseServiceSettings(applicationSettings);

            Log.Logger = SerilogConfigurator
                         .ConfigureLogger(settings.LogDirectory)
                         .WithConsole()
                         .CreateLogger();

            container.Configurator.ForAbstraction <IApplicationSettings>().UseInstances(applicationSettings);

            Log.Logger.Information("Start actualizing cassandra");
            container.ConfigureRepositories();
        }
예제 #9
0
        public static void Main(string[] args)
        {
            Log.Logger = SerilogConfigurator.CreateLogger();

            try
            {
                Log.Logger.Information("Starting up");
                using var webHost = CreateWebHostBuilder(args).Build();
                webHost.Run();
            }
            catch (Exception ex)
            {
                Log.Logger.Fatal(ex, "Application start-up failed");
                Log.CloseAndFlush();
                throw;
            }
        }
예제 #10
0
        public static void Main(string[] args)
        {
            var container = new Container(new ContainerConfiguration(AssembliesLoader.Load()));
            var settings  = ApplicationSettings.LoadDefault("godLikeTools.csf");

            container.Configurator.ForAbstraction <IApplicationSettings>().UseInstances(settings);
            container.ConfigureRepositories();

            var logger = new SerilogLog(SerilogConfigurator.ConfigureLogger(settings.GetString("LogDirectory")).WithConsole().CreateLogger());

            container.Configurator.ForAbstraction <ILog>().UseInstances(logger);

            var commandLine = new CommandLine(args);
            var command     = commandLine.GetCommandLineSetting("-mode");

            var processorTypes = Assembly.GetExecutingAssembly()
                                 .GetTypes()
                                 .Where(x => typeof(ICommandProcessor).IsAssignableFrom(x))
                                 .ToArray();

            var processorsGroup = processorTypes.GroupBy(x => x.Name).FirstOrDefault(group => group.Count() > 1);

            if (processorsGroup != null)
            {
                throw new Exception("Some processors have same command descriptions: " + processorsGroup.First().Name);
            }

            var processorType = processorTypes.SingleOrDefault(x => x.Name == command);

            if (processorType == null)
            {
                throw new BadCommandLineException("The list of available commands: " +
                                                  string.Join(", ", processorTypes.Select(p => p.Name)));
            }

            var processor = (ICommandProcessor)container.Get(processorType);

            processor.Run(commandLine);
            container.Dispose();
            logger.Info($"GodLikeTool Processor in mode '{command}' completed");
        }
예제 #11
0
        private static void ReadHassioConfig()
        {
            try
            {
                var hassAddOnSettings = JsonSerializer.Deserialize <HassioConfig>(File.ReadAllBytes(HassioConfigPath));

                if (hassAddOnSettings?.LogLevel is not null)
                {
                    Environment.SetEnvironmentVariable("LOGGING__MINIMUMLEVEL", hassAddOnSettings.LogLevel);
                    SerilogConfigurator.SetMinimumLogLevel(hassAddOnSettings.LogLevel);
                }

                if (hassAddOnSettings?.GenerateEntitiesOnStart is not null)
                {
                    Environment.SetEnvironmentVariable("NETDAEMON__GENERATEENTITIES", hassAddOnSettings.GenerateEntitiesOnStart.ToString());
                }

                if (hassAddOnSettings?.LogMessages is not null && hassAddOnSettings.LogMessages == true)
                {
                    Environment.SetEnvironmentVariable("HASSCLIENT_MSGLOGLEVEL", "Default");
                }

                _ = hassAddOnSettings?.AppSource ??
                    throw new NetDaemonNullReferenceException("AppSource cannot be null");

                if (hassAddOnSettings.AppSource.StartsWith("/", true, CultureInfo.InvariantCulture) || hassAddOnSettings.AppSource[1] == ':')
                {
                    // Hard codede path
                    Environment.SetEnvironmentVariable("NETDAEMON__APPSOURCE", hassAddOnSettings.AppSource);
                }
                else
                {
                    // We are in Hassio so hard code the path
                    Environment.SetEnvironmentVariable("NETDAEMON__APPSOURCE", Path.Combine("/config/netdaemon", hassAddOnSettings.AppSource));
                }
            }
            catch (Exception e)
            {
                Log.Fatal(e, "Failed to read the Home Assistant Add-on config");
            }
        }
예제 #12
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            SerilogConfigurator.Configure(env);
            loggerFactory.AddSerilog(Log.Logger);
            app.UseCors("default");

            //app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
            //{
            //    Authority = corsSettings.authorityUrl,
            //    RequireHttpsMetadata = false,
            //    ApiName = "LeasingWebApi"
            //});

            app.UseMvc();

            // Enable middleware to serve generated Swagger as a JSON endpoint
            app.UseSwagger();

            // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
            app.UseSwaggerUi(c =>
                             c.SwaggerEndpoint("/swagger/v1/swagger.json", "Demo WebApi")
                             );
        }
예제 #13
0
    public static ILoggingBuilder AddSerilogJsonConsole(this ILoggingBuilder builder)
    {
        builder.Services.AddSingleton <ILoggerProvider, SerilogLoggerProvider>(services =>
                                                                               new SerilogLoggerProvider(SerilogConfigurator.Config(), true));

        return(builder);
    }
예제 #14
0
 public static IHostBuilder UseDefaultNetDaemonLogging(this IHostBuilder hostBuilder)
 {
     return(hostBuilder.UseSerilog((context, loggerConfiguration) => SerilogConfigurator.Configure(loggerConfiguration, context.HostingEnvironment)));
 }