public static void Log(GameConsoleLog log)
 {
     logs.Add(log);
     if (_config != null && _config.logToUnity && log.Type != GameConsoleLog.LogType.User && !log.UnityHidden)
     {
         Debug.Log($"qASIC game console: {log.Message}");
     }
     OnLog?.Invoke(log);
 }
        static void HandleUnityLog(string logText, string trace, LogType type)
        {
            if (_config == null)
            {
                return;
            }
            string color = "default";

            switch (type)
            {
            case LogType.Exception:
                if (!_config.logUnityExceptionsToConsole)
                {
                    return;
                }
                color = "unity exception";
                break;

            case LogType.Error:
                if (!_config.logUnityErrorsToConsole)
                {
                    return;
                }
                color = "unity error";
                break;

            case LogType.Assert:
                if (!_config.logUnityAssertsToConsole)
                {
                    return;
                }
                color = "unity assert";
                break;

            case LogType.Warning:
                if (!_config.logUnityWarningsToConsole)
                {
                    return;
                }
                color = "unity warning";
                break;

            case LogType.Log:
                if (!_config.logUnityMessagesToConsole)
                {
                    return;
                }
                color = "unity message";
                break;
            }

            GameConsoleLog log = new GameConsoleLog(logText, DateTime.Now, color, GameConsoleLog.LogType.Game, true);

            Log(log);
        }