@@ -77,6 +77,31 @@ public static AppBuilder BuildAvaloniaApp()
7777 Native . OS . SetupApp ( builder ) ;
7878 return builder ;
7979 }
80+
81+ private static void LogException ( Exception ex )
82+ {
83+ if ( ex == null )
84+ return ;
85+
86+ var builder = new StringBuilder ( ) ;
87+ builder . Append ( $ "Crash::: { ex . GetType ( ) . FullName } : { ex . Message } \n \n ") ;
88+ builder . Append ( "----------------------------\n " ) ;
89+ builder . Append ( $ "Version: { Assembly . GetExecutingAssembly ( ) . GetName ( ) . Version } \n ") ;
90+ builder . Append ( $ "OS: { Environment . OSVersion } \n ") ;
91+ builder . Append ( $ "Framework: { AppDomain . CurrentDomain . SetupInformation . TargetFrameworkName } \n ") ;
92+ builder . Append ( $ "Source: { ex . Source } \n ") ;
93+ builder . Append ( $ "Thread Name: { Thread . CurrentThread . Name ?? "Unnamed" } \n ") ;
94+ builder . Append ( $ "User: { Environment . UserName } \n ") ;
95+ builder . Append ( $ "App Start Time: { Process . GetCurrentProcess ( ) . StartTime } \n ") ;
96+ builder . Append ( $ "Exception Time: { DateTime . Now } \n ") ;
97+ builder . Append ( $ "Memory Usage: { Process . GetCurrentProcess ( ) . PrivateMemorySize64 / 1024 / 1024 } MB\n ") ;
98+ builder . Append ( $ "---------------------------\n \n ") ;
99+ builder . Append ( ex ) ;
100+
101+ var time = DateTime . Now . ToString ( "yyyy-MM-dd_HH-mm-ss" ) ;
102+ var file = Path . Combine ( Native . OS . DataDir , $ "crash_{ time } .log") ;
103+ File . WriteAllText ( file , builder . ToString ( ) ) ;
104+ }
80105 #endregion
81106
82107 #region Utility Functions
@@ -181,6 +206,9 @@ public static void SetFonts(string defaultFont, string monospaceFont, bool onlyU
181206 app . _fontsOverrides = null ;
182207 }
183208
209+ defaultFont = app . FixFontFamilyName ( defaultFont ) ;
210+ monospaceFont = app . FixFontFamilyName ( monospaceFont ) ;
211+
184212 var resDic = new ResourceDictionary ( ) ;
185213 if ( ! string . IsNullOrEmpty ( defaultFont ) )
186214 resDic . Add ( "Fonts.Default" , new FontFamily ( defaultFont ) ) ;
@@ -325,31 +353,6 @@ public override void OnFrameworkInitializationCompleted()
325353 }
326354 #endregion
327355
328- private static void LogException ( Exception ex )
329- {
330- if ( ex == null )
331- return ;
332-
333- var builder = new StringBuilder ( ) ;
334- builder . Append ( $ "Crash::: { ex . GetType ( ) . FullName } : { ex . Message } \n \n ") ;
335- builder . Append ( "----------------------------\n " ) ;
336- builder . Append ( $ "Version: { Assembly . GetExecutingAssembly ( ) . GetName ( ) . Version } \n ") ;
337- builder . Append ( $ "OS: { Environment . OSVersion } \n ") ;
338- builder . Append ( $ "Framework: { AppDomain . CurrentDomain . SetupInformation . TargetFrameworkName } \n ") ;
339- builder . Append ( $ "Source: { ex . Source } \n ") ;
340- builder . Append ( $ "Thread Name: { Thread . CurrentThread . Name ?? "Unnamed" } \n ") ;
341- builder . Append ( $ "User: { Environment . UserName } \n ") ;
342- builder . Append ( $ "App Start Time: { Process . GetCurrentProcess ( ) . StartTime } \n ") ;
343- builder . Append ( $ "Exception Time: { DateTime . Now } \n ") ;
344- builder . Append ( $ "Memory Usage: { Process . GetCurrentProcess ( ) . PrivateMemorySize64 / 1024 / 1024 } MB\n ") ;
345- builder . Append ( $ "---------------------------\n \n ") ;
346- builder . Append ( ex ) ;
347-
348- var time = DateTime . Now . ToString ( "yyyy-MM-dd_HH-mm-ss" ) ;
349- var file = Path . Combine ( Native . OS . DataDir , $ "crash_{ time } .log") ;
350- File . WriteAllText ( file , builder . ToString ( ) ) ;
351- }
352-
353356 private static bool TryLaunchAsRebaseTodoEditor ( string [ ] args , out int exitCode )
354357 {
355358 exitCode = - 1 ;
@@ -546,6 +549,24 @@ private void ShowSelfUpdateResult(object data)
546549 } ) ;
547550 }
548551
552+ private string FixFontFamilyName ( string input )
553+ {
554+ if ( string . IsNullOrEmpty ( input ) )
555+ return string . Empty ;
556+
557+ var parts = input . Split ( ',' ) ;
558+ var trimmed = new List < string > ( ) ;
559+
560+ foreach ( var part in parts )
561+ {
562+ var t = part . Trim ( ) ;
563+ if ( ! string . IsNullOrEmpty ( t ) )
564+ trimmed . Add ( t ) ;
565+ }
566+
567+ return trimmed . Count > 0 ? string . Join ( ',' , trimmed ) : string . Empty ;
568+ }
569+
549570 private ViewModels . Launcher _launcher = null ;
550571 private ResourceDictionary _activeLocale = null ;
551572 private ResourceDictionary _themeOverrides = null ;
0 commit comments