using Avalonia; using Serilog; using System; using System.IO; namespace Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance { internal sealed class Program { [STAThread] public static int Main(string[] args) { ConfigureLogging(); try { Log.Information("鞋类整鞋防滑性能试验程序启动"); BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); return 0; } catch (Exception ex) { Log.Fatal(ex, "程序发生致命异常并退出"); return 1; } finally { Log.Information("鞋类整鞋防滑性能试验程序退出"); Log.CloseAndFlush(); } } public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .UsePlatformDetect() #if DEBUG .WithDeveloperTools() #endif .WithInterFont() .LogToTrace(); private static void ConfigureLogging() { var logDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "FootwearSlipResistance", "Logs"); Directory.CreateDirectory(logDirectory); Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File( Path.Combine(logDirectory, "app-.log"), rollingInterval: RollingInterval.Day, retainedFileCountLimit: 30, fileSizeLimitBytes: 20 * 1024 * 1024, rollOnFileSizeLimit: true, shared: true, flushToDiskInterval: TimeSpan.FromSeconds(1), outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}") .CreateLogger(); } } }