@@ -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,8 +206,8 @@ public static void SetFonts(string defaultFont, string monospaceFont, bool onlyU
181206 app . _fontsOverrides = null ;
182207 }
183208
184- defaultFont = FixFontFamilyName ( defaultFont ) ;
185- monospaceFont = FixFontFamilyName ( monospaceFont ) ;
209+ defaultFont = app . FixFontFamilyName ( defaultFont ) ;
210+ monospaceFont = app . FixFontFamilyName ( monospaceFont ) ;
186211
187212 var resDic = new ResourceDictionary ( ) ;
188213 if ( ! string . IsNullOrEmpty ( defaultFont ) )
@@ -328,31 +353,6 @@ public override void OnFrameworkInitializationCompleted()
328353 }
329354 #endregion
330355
331- private static void LogException ( Exception ex )
332- {
333- if ( ex == null )
334- return ;
335-
336- var builder = new StringBuilder ( ) ;
337- builder . Append ( $ "Crash::: { ex . GetType ( ) . FullName } : { ex . Message } \n \n ") ;
338- builder . Append ( "----------------------------\n " ) ;
339- builder . Append ( $ "Version: { Assembly . GetExecutingAssembly ( ) . GetName ( ) . Version } \n ") ;
340- builder . Append ( $ "OS: { Environment . OSVersion } \n ") ;
341- builder . Append ( $ "Framework: { AppDomain . CurrentDomain . SetupInformation . TargetFrameworkName } \n ") ;
342- builder . Append ( $ "Source: { ex . Source } \n ") ;
343- builder . Append ( $ "Thread Name: { Thread . CurrentThread . Name ?? "Unnamed" } \n ") ;
344- builder . Append ( $ "User: { Environment . UserName } \n ") ;
345- builder . Append ( $ "App Start Time: { Process . GetCurrentProcess ( ) . StartTime } \n ") ;
346- builder . Append ( $ "Exception Time: { DateTime . Now } \n ") ;
347- builder . Append ( $ "Memory Usage: { Process . GetCurrentProcess ( ) . PrivateMemorySize64 / 1024 / 1024 } MB\n ") ;
348- builder . Append ( $ "---------------------------\n \n ") ;
349- builder . Append ( ex ) ;
350-
351- var time = DateTime . Now . ToString ( "yyyy-MM-dd_HH-mm-ss" ) ;
352- var file = Path . Combine ( Native . OS . DataDir , $ "crash_{ time } .log") ;
353- File . WriteAllText ( file , builder . ToString ( ) ) ;
354- }
355-
356356 private static bool TryLaunchAsRebaseTodoEditor ( string [ ] args , out int exitCode )
357357 {
358358 exitCode = - 1 ;
@@ -440,24 +440,6 @@ private static bool TryLaunchAsRebaseMessageEditor(string[] args, out int exitCo
440440 return true ;
441441 }
442442
443- private static string FixFontFamilyName ( string input )
444- {
445- if ( string . IsNullOrEmpty ( input ) )
446- return string . Empty ;
447-
448- var parts = input . Split ( ',' ) ;
449- var trimmed = new List < string > ( ) ;
450-
451- foreach ( var part in parts )
452- {
453- var t = part . Trim ( ) ;
454- if ( ! string . IsNullOrEmpty ( t ) )
455- trimmed . Add ( t ) ;
456- }
457-
458- return trimmed . Count > 0 ? string . Join ( ',' , trimmed ) : string . Empty ;
459- }
460-
461443 private bool TryLaunchAsCoreEditor ( IClassicDesktopStyleApplicationLifetime desktop )
462444 {
463445 var args = desktop . Args ;
@@ -567,6 +549,24 @@ private void ShowSelfUpdateResult(object data)
567549 } ) ;
568550 }
569551
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+
570570 private ViewModels . Launcher _launcher = null ;
571571 private ResourceDictionary _activeLocale = null ;
572572 private ResourceDictionary _themeOverrides = null ;
0 commit comments