App.xaml.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using Perspex;
  3. using Perspex.Controls;
  4. using Perspex.Diagnostics;
  5. using Perspex.Logging;
  6. using Perspex.Logging.Serilog;
  7. using Perspex.Markup.Xaml;
  8. using Serilog;
  9. using Serilog.Filters;
  10. namespace BindingTest
  11. {
  12. public class App : Application
  13. {
  14. public App()
  15. {
  16. RegisterServices();
  17. InitializeSubsystems((int)Environment.OSVersion.Platform);
  18. InitializeComponent();
  19. InitializeLogging();
  20. }
  21. public static void AttachDevTools(Window window)
  22. {
  23. DevTools.Attach(window);
  24. }
  25. private static void Main()
  26. {
  27. var app = new App();
  28. var window = new MainWindow();
  29. window.Show();
  30. app.Run(window);
  31. }
  32. private void InitializeComponent()
  33. {
  34. PerspexXamlLoader.Load(this);
  35. }
  36. private void InitializeLogging()
  37. {
  38. #if DEBUG
  39. SerilogLogger.Initialize(new LoggerConfiguration()
  40. .Filter.ByIncludingOnly(Matching.WithProperty("Area", LogArea.Layout))
  41. .MinimumLevel.Verbose()
  42. .WriteTo.Trace(outputTemplate: "{Area}: {Message}")
  43. .CreateLogger());
  44. #endif
  45. }
  46. }
  47. }