68 lines
2.2 KiB
C#
68 lines
2.2 KiB
C#
using System.Collections.Immutable;
|
|
using System.Buffers;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Microsoft.Extensions.Logging;
|
|
using OpenTelemetry.Logs;
|
|
using Serilog;
|
|
|
|
namespace FwSearchApi
|
|
{
|
|
|
|
public class Program
|
|
{
|
|
public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
|
|
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
|
|
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
|
|
.Build();
|
|
|
|
public static void Main(string[] args)
|
|
{
|
|
Log.Logger = new LoggerConfiguration()
|
|
.ReadFrom.Configuration(Configuration)
|
|
.CreateLogger();
|
|
|
|
try {
|
|
CreateHostBuilder(args).Build().Run();
|
|
}
|
|
finally
|
|
{
|
|
Log.CloseAndFlush();
|
|
}
|
|
}
|
|
|
|
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
|
Host.CreateDefaultBuilder(args)
|
|
.ConfigureWebHostDefaults(webBuilder =>
|
|
{
|
|
webBuilder.UseStartup<Startup>();
|
|
webBuilder.UseSerilog();
|
|
webBuilder.UseConfiguration(Configuration);
|
|
webBuilder.SuppressStatusMessages(true);
|
|
})
|
|
.ConfigureLogging((context, builder) =>
|
|
{
|
|
builder.ClearProviders();
|
|
builder.AddConsole();
|
|
builder.AddSerilog();
|
|
|
|
builder.AddOpenTelemetry(options =>
|
|
{
|
|
options.IncludeScopes = true;
|
|
options.ParseStateValues = true;
|
|
options.IncludeFormattedMessage = true;
|
|
options.AddConsoleExporter();
|
|
});
|
|
|
|
});
|
|
|
|
|
|
}
|
|
}
|