Program.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Avalonia;
  2. using Avalonia.ReactiveUI;
  3. using Serilog;
  4. using Serilog.Events;
  5. using System;
  6. using System.Diagnostics;
  7. using VeloeMinecraftLauncher.MinecraftLauncher;
  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. .With(new Win32PlatformOptions
  32. {
  33. UseWindowsUIComposition = true
  34. })
  35. .LogToTrace()
  36. .UseReactiveUI();
  37. }
  38. }
  39. }