Files
stream-shorts/src/StreamShorts.Console/Program.cs
T

41 lines
1.2 KiB
C#
Raw Normal View History

Log.Logger = new LoggerConfiguration()
2025-07-23 23:55:56 -05:00
.WriteTo.File(
formatter: new CompactJsonFormatter(),
path: Path.Combine(AppContext.BaseDirectory, "logs", "log.jsonl"),
rollingInterval: RollingInterval.Day
)
.Enrich.FromLogContext()
.MinimumLevel.Verbose()
.MinimumLevel.Override("Microsoft", LogEventLevel.Fatal)
.CreateLogger();
2025-07-21 23:51:59 -05:00
2025-07-23 23:55:56 -05:00
try
{
2025-07-23 23:55:56 -05:00
var appName = Assembly.GetExecutingAssembly().GetName().Name;
Log.Information("Starting {AppName}", appName);
await Host.CreateDefaultBuilder(args)
.ConfigureLogging(static l => l.ClearProviders())
.ConfigureServices(static (_, services) =>
{
services.AddSingleton(AnsiConsole.Console);
services.AddSingleton<IFileSystem, FileSystem>();
services.AddSingleton<IAudioExtractor, AudioExtractor>();
services.AddSingleton<ITranscriber, WhisperTranscriber>();
2025-08-03 22:06:16 -05:00
services.AddSingleton<ITranscriptAnalyzer, GeminiAnalyzer>();
2025-07-23 23:55:56 -05:00
})
.BuildApp()
.RunAsync(args);
Log.Information("{AppName} has completed successfully.", appName);
}
catch (Exception ex)
{
Log.Fatal(ex, "An unhandled exception occurred during execution.");
throw;
}
finally
{
await Log.CloseAndFlushAsync();
}