public HoustonSettingsConfigurator(ServiceApiHoustonProperties properties)
 {
     this.properties = properties;
     Settings        = ApplicationSettings.LoadDefault("serviceApi.csf");
     Logger          = new SerilogLog(SerilogConfigurator.ConfigureLogger(Settings.GetString("LogDirectory")).WithConsole().CreateLogger());
     ConfigureContainer();
 }
Ejemplo n.º 2
0
 private static IVostokHost BuildVostokHost(params string[] args)
 {
     return(new VostokHostBuilder <Application>()
            .SetServiceInfo("vostok", "frontier")
            .ConfigureAppConfiguration(configurationBuilder =>
     {
         configurationBuilder.AddCommandLine(args);
         configurationBuilder.AddEnvironmentVariables();
         configurationBuilder.AddJsonFile("appsettings.json");
     })
            .ConfigureHost((context, hostConfigurator) =>
     {
         var loggerConfiguration = new LoggerConfiguration().MinimumLevel.Debug();
         if (context.Configuration.GetSection("hostLog").GetValue <bool>("console"))
         {
             loggerConfiguration = loggerConfiguration
                                   .WriteTo.Console(outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level:u3} [{Thread}] {Message:l}{NewLine}{Exception}");
         }
         var pathFormat = context.Configuration.GetSection("hostLog")["pathFormat"];
         if (!string.IsNullOrEmpty(pathFormat))
         {
             loggerConfiguration = loggerConfiguration
                                   .WriteTo.RollingFile(pathFormat, outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level:u3} [{Thread}] {Message:l}{NewLine}{Exception}");
         }
         var hostLog = new SerilogLog(loggerConfiguration.CreateLogger());
         hostConfigurator.SetHostLog(hostLog);
     })
            .ConfigureAirlock((context, configurator) =>
     {
         configurator.SetLog(context.HostingEnvironment.Log.FilterByLevel(LogLevel.Error));
     })
            .Build());
 }
 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();
 }
Ejemplo n.º 4
0
        public static IVostokHost BuildVostokHost(params string[] args)
        {
            return(new VostokHostBuilder <WebApplication>()
                   .SetServiceInfo("ulearn", "AntiPlagiarism.Web")
                   .ConfigureAppConfiguration(configurationBuilder =>
            {
                configurationBuilder.AddCommandLine(args);
                configurationBuilder.AddEnvironmentVariables();
                ApplicationConfiguration.BuildAppsettingsConfiguration(configurationBuilder);
            })
                   .ConfigureHost((context, hostConfigurator) =>
            {
                var loggerConfiguration = new LoggerConfiguration().MinimumLevel.Debug();

                if (context.Configuration.GetSection("hostLog").GetValue <bool>("console"))
                {
                    loggerConfiguration = loggerConfiguration
                                          .WriteTo.Console(outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level:u3} [{Thread}] {Message:l}{NewLine}{Exception}", restrictedToMinimumLevel: LogEventLevel.Information);
                }

                var pathFormat = context.Configuration.GetSection("hostLog")["pathFormat"];
                if (!string.IsNullOrEmpty(pathFormat))
                {
                    var minimumLevelString = context.Configuration.GetSection("hostLog").GetValue <string>("minimumLevel", "debug");
                    if (!Enum.TryParse(minimumLevelString, true, out LogEventLevel minimumLevel) || !Enum.IsDefined(typeof(LogEventLevel), minimumLevel))
                    {
                        minimumLevel = LogEventLevel.Debug;
                    }
                    if (Path.IsPathRooted(pathFormat))
                    {
                        var directory = Path.GetDirectoryName(pathFormat);
                        var fileName = Path.GetFileName(pathFormat);
                        pathFormat = Path.Combine(directory, context.Configuration["graphiteServiceName"], fileName);
                    }

                    loggerConfiguration = loggerConfiguration
                                          .WriteTo.RollingFile(
                        pathFormat,
                        outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level:u3} [{Thread}] {Message:l}{NewLine}{Exception}",
                        restrictedToMinimumLevel: minimumLevel,
                        fileSizeLimitBytes: 4 * 1073741824L
                        );
                }

                var hostLog = new SerilogLog(loggerConfiguration.CreateLogger());
                hostConfigurator.SetHostLog(hostLog);
            })
                   .ConfigureAirlock((context, configurator) => { configurator.SetLog(context.HostingEnvironment.Log.FilterByLevel(LogLevel.Warn)); })
                   .Build());
        }
Ejemplo n.º 5
0
        public static IVostokHost BuildVostokHost(params string[] args)
        {
            return(new VostokHostBuilder <WebApplication>()
                   .SetServiceInfo("ulearn", "AntiPlagiarism.Web")
                   .ConfigureAppConfiguration(configurationBuilder =>
            {
                configurationBuilder.AddCommandLine(args);
                configurationBuilder.AddEnvironmentVariables();
                configurationBuilder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
            })
                   .ConfigureHost((context, hostConfigurator) =>
            {
                var loggerConfiguration = new LoggerConfiguration().MinimumLevel.Debug();

                if (context.Configuration.GetSection("hostLog").GetValue <bool>("console"))
                {
                    loggerConfiguration = loggerConfiguration
                                          .WriteTo.Console(outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level:u3} [{Thread}] {Message:l}{NewLine}{Exception}", restrictedToMinimumLevel: LogEventLevel.Information);
                }
                var pathFormat = context.Configuration.GetSection("hostLog")["pathFormat"];
                if (!string.IsNullOrEmpty(pathFormat))
                {
                    var minimumLevelString = context.Configuration.GetSection("hostLog").GetValue <string>("minimumLevel", "debug");
                    if (!Enum.TryParse(minimumLevelString, true, out LogEventLevel minimumLevel) || !Enum.IsDefined(typeof(LogEventLevel), minimumLevel))
                    {
                        minimumLevel = LogEventLevel.Debug;
                    }

                    loggerConfiguration = loggerConfiguration
                                          .WriteTo.RollingFile(
                        pathFormat,
                        outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level:u3} [{Thread}] {Message:l}{NewLine}{Exception}",
                        restrictedToMinimumLevel: minimumLevel
                        );
                }
                var hostLog = new SerilogLog(loggerConfiguration.CreateLogger());
                hostConfigurator.SetHostLog(hostLog);
            })
                   .ConfigureAirlock((context, configurator) =>
            {
                configurator.SetLog(context.HostingEnvironment.Log.FilterByLevel(LogLevel.Warn));
            })
                   .Build());
        }
            public static string GetLogString(SerilogLog log)
            {
                var sb = new StringBuilder();

                sb.AppendLine($"<b>{log.Level}</b> - {log.Timestamp}");
                sb.AppendLine($"<code>{log.MessageTemplate}</code>");

                if (log.Properties.ContainsKey("SourceContext") && !string.IsNullOrWhiteSpace(log.Properties["SourceContext"]))
                {
                    sb.AppendLine($"Context: {log.Properties["SourceContext"]}");
                }

                if (log.Properties.ContainsKey("RequestPath") && !string.IsNullOrWhiteSpace(log.Properties["RequestPath"]))
                {
                    sb.AppendLine($"RequestPath: {log.Properties["RequestPath"]}");
                }

                return(sb.ToString());
            }
Ejemplo n.º 7
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");
        }
Ejemplo n.º 8
0
        public static void Main()
        {
            Log.Logger = new LoggerConfiguration()
                         .Enrich.With <FlowContextEnricher>()
                         //.WriteTo.Console(outputTemplate: "{Timestamp:HH:mm:ss.fff} {Level} {Message:l} {Exception}{NewLine}{Properties}{NewLine}")
                         .WriteTo.VostokLog(new ConsoleLog())
                         .CreateLogger();

            var log = new SerilogLog(Log.Logger)
                      .ForContext(typeof(EntryPoint));

            while (true)
            {
                using (Context.Properties.Use("TraceId", Guid.NewGuid()))
                {
                    log.Info("Hello {Username}!", "Mike");
                }

                log.Info("Hello Bob!");

                Thread.Sleep(10000);
            }
        }