ensure proper disposal of objects
This commit is contained in:
15
Program.cs
15
Program.cs
@@ -10,14 +10,16 @@ using Serilog.Events;
|
||||
var resetEvent = new ManualResetEvent(false);
|
||||
using var tokenSource = new CancellationTokenSource();
|
||||
|
||||
Console.CancelKeyPress += (sender, eventArgs) =>
|
||||
Console.CancelKeyPress += (_, eventArgs) =>
|
||||
{
|
||||
resetEvent?.Set();
|
||||
tokenSource?.Cancel();
|
||||
Log.Debug("Canceling with CancelKeyPress");
|
||||
Dispose();
|
||||
eventArgs.Cancel = true;
|
||||
Log.CloseAndFlush();
|
||||
};
|
||||
|
||||
AppDomain.CurrentDomain.ProcessExit += (_, _) => Dispose();
|
||||
|
||||
SetupLogging();
|
||||
|
||||
var config = LoadConfig();
|
||||
@@ -30,6 +32,13 @@ resetEvent.WaitOne();
|
||||
|
||||
return;
|
||||
|
||||
void Dispose()
|
||||
{
|
||||
resetEvent?.Set();
|
||||
tokenSource?.Cancel();
|
||||
Log.CloseAndFlush();
|
||||
}
|
||||
|
||||
static void SetupLogging()
|
||||
{
|
||||
var minLevel = (Environment.GetEnvironmentVariable("LOG_LEVEL") ?? "info").ToUpperInvariant() switch
|
||||
|
||||
Reference in New Issue
Block a user