public static void Main(string[] args) { var logConfig = new LoggerConfiguration() .Enrich.FromLogContext() .MinimumLevel.Verbose() .WriteTo.ColoredConsole(outputTemplate: TraceTemplate) .WriteTo.Trace(outputTemplate: TraceTemplate) .WriteTo.RollingFile( pathFormat: Path.Combine(AppContext.BaseDirectory, "Logs", "log-{Date}.txt"), outputTemplate: FileTemplate); log = Log.Logger = logConfig.CreateLogger(); log.Information("Starting up!"); try { var arguments = Args.Parse <Arguments>(args); var cts = new CancellationTokenSource(); Console.CancelKeyPress += (s, e) => { e.Cancel = true; cts.Cancel(); }; try { using (var main = new Main(arguments)) { main.Execute(cts.Token); } } finally { Console.CursorVisible = true; } } catch (ArgException ex) { log.Warning(ex.Message); Console.WriteLine(ArgUsage.GenerateUsageFromTemplate <Arguments>()); } catch (Exception ex) { log.Error(ex, "Unhandled exception"); Console.WriteLine("Unhandled exception: {0}", ex); } log.Information("Closing"); }
public static void Main(string[] args) { var log = LogManager.GetLogger("Program"); log.Info("Starting"); try { var arguments = Args.Parse<Arguments>(args); var cts = new CancellationTokenSource(); Console.CancelKeyPress += (s, e) => { e.Cancel = true; cts.Cancel(); }; try { using (var main = new Main(arguments)) { main.Execute(cts.Token); } } finally { Console.CursorVisible = true; } } catch (ArgException ex) { log.Warn(ex.Message); Console.WriteLine(ArgUsage.GenerateUsageFromTemplate<Arguments>()); } catch (Exception ex) { log.Error(ex, "Unhandled exception"); Console.WriteLine("Unhandled exception: {0}", ex); } log.Info("Closing"); }