in packages/csharp/PortingAssistant/PortingAssistant.Api/Program.cs [21:92]
static void Main(string[] args)
{
if (args.Length < 3)
{
throw new ArgumentException("Must provide a config file, aws profile and path");
}
var config = args[0];
var isConsole = args.Length == 4 && args[3].Equals("--console");
var outputTemplate = "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {SourceContext}: {Message:lj}{NewLine}{Exception}";
if (args.Length == 4 && !args[3].Equals("--console"))
{
// Args[3] is version number if not --console
outputTemplate = "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] (" + args[3] + ") {SourceContext}: {Message:lj}{NewLine}{Exception}";
}
Serilog.Formatting.Display.MessageTemplateTextFormatter tf =
new Serilog.Formatting.Display.MessageTemplateTextFormatter(outputTemplate, CultureInfo.InvariantCulture);
var date = DateTime.Today.ToString("yyyy-MM-dd");
var logConfiguration = new LoggerConfiguration().Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.RollingFile(
Path.Combine(args[2], "logs", "portingAssistant-assessment-{Date}.log"),
outputTemplate: outputTemplate)
.WriteTo.Logger(lc => lc.MinimumLevel.Error().WriteTo.RollingFile(
Path.Combine(args[2], "logs", "portingAssistant-backend-{Date}.log"),
outputTemplate: outputTemplate)
);
if (isConsole)
{
logConfiguration = logConfiguration.WriteTo.Console();
}
Log.Logger = logConfiguration.CreateLogger();
var portingAssistantPortingConfiguration = JsonSerializer.Deserialize<PortingAssistantPortingConfiguration>(File.ReadAllText(config));
var configuration = new PortingAssistantConfiguration();
configuration.DataStoreSettings.HttpsEndpoint = portingAssistantPortingConfiguration.PortingAssistantConfiguration.DataStoreSettings.HttpsEndpoint;
configuration.DataStoreSettings.S3Endpoint = portingAssistantPortingConfiguration.PortingAssistantConfiguration.DataStoreSettings.S3Endpoint;
configuration.DataStoreSettings.GitHubEndpoint = portingAssistantPortingConfiguration.PortingAssistantConfiguration.DataStoreSettings.GitHubEndpoint;
var contributionConfiguration = new CustomerContributionConfiguration();
contributionConfiguration.CustomerFeedbackEndpoint = portingAssistantPortingConfiguration.CustomerContributionConfiguration.CustomerFeedbackEndpoint;
contributionConfiguration.RuleContributionEndpoint = portingAssistantPortingConfiguration.CustomerContributionConfiguration.RuleContributionEndpoint;
string metricsFolder = Path.Combine(args[2], "logs");
string metricsFilePath = Path.Combine(metricsFolder, $"portingAssistant-telemetry-{DateTime.Today.ToString("yyyyMMdd")}.metrics");
var telemetryLogConfiguration = new LoggerConfiguration().Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.RollingFile(
Path.Combine(args[2], "logs", "portingAssistantTelemetry.log"),
outputTemplate: outputTemplate);
TelemetryCollector.Builder(telemetryLogConfiguration.CreateLogger(), metricsFilePath);
var serviceCollection = new ServiceCollection();
ConfigureServices(serviceCollection, configuration);
try
{
var application = new Application(serviceCollection, contributionConfiguration);
application.SetupConnection(isConsole);
application.Start();
}
finally
{
Log.CloseAndFlush();
}
}