public HoustonSettingsConfigurator(ServiceApiHoustonProperties properties) { this.properties = properties; Settings = ApplicationSettings.LoadDefault("serviceApi.csf"); Logger = new SerilogLog(SerilogConfigurator.ConfigureLogger(Settings.GetString("LogDirectory")).WithConsole().CreateLogger()); ConfigureContainer(); }
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(); }
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()); }
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()); }
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"); }
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); } }