Пример #1
0
 public static void Error(string text, bool ignoreStopLoggingLimit = false)
 {
     if (!ignoreStopLoggingLimit && Log.ReachedMaxMessagesLimit)
     {
         return;
     }
     Debug.LogError(text);
     if (!Log.currentlyLoggingError)
     {
         Log.currentlyLoggingError = true;
         try
         {
             if (Prefs.PauseOnError && Current.ProgramState == ProgramState.Playing)
             {
                 Find.TickManager.Pause();
             }
             Log.messageQueue.Enqueue(new LogMessage(LogMessageType.Error, text, StackTraceUtility.ExtractStackTrace()));
             Log.PostMessage();
             if (!PlayDataLoader.Loaded || Prefs.DevMode)
             {
                 Log.TryOpenLogWindow();
             }
         }
         catch (Exception arg)
         {
             Debug.LogError("An error occurred while logging an error: " + arg);
         }
         finally
         {
             Log.currentlyLoggingError = false;
         }
     }
 }
Пример #2
0
 public static void Notify_Exception(Exception e)
 {
     Log.messageQueue.Enqueue(new LogMessage(LogMessageType.Error, e.Message, e.StackTrace));
     if (!PlayDataLoader.Loaded || Prefs.DevMode)
     {
         Log.TryOpenLogWindow();
     }
 }
Пример #3
0
 private static void PostMessage()
 {
     if (Log.openOnMessage)
     {
         Log.TryOpenLogWindow();
         EditWindow_Log.SelectLastMessage(true);
     }
     Log.messageCount++;
     if (Log.messageCount == 1000 && Log.ReachedMaxMessagesLimit)
     {
         Log.Warning("Reached max messages limit. Stopping logging to avoid spam.", true);
     }
 }
Пример #4
0
 public static void Error(string text)
 {
     if (Prefs.PauseOnError && Current.ProgramState == ProgramState.Playing)
     {
         Find.TickManager.CurTimeSpeed = TimeSpeed.Paused;
     }
     Debug.LogError(text);
     Log.messageQueue.Enqueue(new LogMessage(LogMessageType.Error, text, StackTraceUtility.ExtractStackTrace()));
     if (!PlayDataLoader.Loaded || Prefs.DevMode)
     {
         Log.TryOpenLogWindow();
     }
 }