Program.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Avalonia;
  2. using Avalonia.ReactiveUI;
  3. using Serilog;
  4. using Serilog.Events;
  5. using System;
  6. using System.Diagnostics;
  7. using VeloeMinecraftLauncher.Utils;
  8. namespace VeloeMinecraftLauncher
  9. {
  10. internal class Program
  11. {
  12. // Initialization code. Don't use any Avalonia, third-party APIs or any
  13. // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
  14. // yet and stuff might break.
  15. [STAThread]
  16. public static void Main(string[] args) => BuildAvaloniaApp()
  17. .StartWithClassicDesktopLifetime(args);
  18. // Avalonia configuration, don't remove; also used by visual designer.
  19. public static AppBuilder BuildAvaloniaApp()
  20. {
  21. Settings.LoadSettings();
  22. var logger = new Serilog.LoggerConfiguration()
  23. .MinimumLevel.Debug()
  24. .WriteTo.File("avalonia.log", Settings.fileLogEventLevel, fileSizeLimitBytes: Settings.maxLog * 1024, rollOnFileSizeLimit: true)// restricted... is Optional
  25. .CreateLogger();
  26. Settings.avaloniaLogger = logger;
  27. TraceListener listener = new SerilogTraceListener.SerilogTraceListener(logger);
  28. Trace.Listeners.Add(listener);
  29. return AppBuilder.Configure<App>()
  30. .UsePlatformDetect()
  31. .LogToTrace()
  32. .UseReactiveUI();
  33. }
  34. }
  35. }