private void ApplicationOnLogMessageReceived(string message, string stackTrace, LogType type)
        {
            RdLogEventType eventType;

            switch (type)
            {
            case LogType.Error:
            case LogType.Exception:
                eventType = RdLogEventType.Error;
                break;

            case LogType.Warning:
                eventType = RdLogEventType.Warning;
                break;

            default:
                eventType = RdLogEventType.Message;
                break;
            }

            var ticks = DateTime.UtcNow.Ticks;

            MainThreadDispatcher.Instance.Queue(() =>
            {
                var eventMode = EditorApplication.isPlaying ? RdLogEventMode.Play : RdLogEventMode.Edit;

                var evt = new RdLogEvent(ticks, eventType, eventMode, message, stackTrace);
                myDelayedLogEvents.AddLast(evt);
                if (myDelayedLogEvents.Count >= myDelayedLogEventsMaxSize)
                {
                    myDelayedLogEvents.RemoveFirst(); // limit max size
                }
                OnAddEvent(new EventArgs());
            });
        }
예제 #2
0
        private void ApplicationOnLogMessageReceived(string message, string stackTrace, LogType type)
        {
            RdLogEventType eventType;

            switch (type)
            {
            case LogType.Error:
            case LogType.Exception:
                eventType = RdLogEventType.Error;
                break;

            case LogType.Warning:
                eventType = RdLogEventType.Warning;
                break;

            default:
                eventType = RdLogEventType.Message;
                break;
            }

            RdLogEventMode mode = RdLogEventMode.Play;

            if (PluginEntryPoint.PlayModeSavedState == PluginEntryPoint.PlayModeState.Stopped)
            {
                mode = RdLogEventMode.Edit;
            }

            var ticks = DateTime.UtcNow.Ticks;
            var evt   = new RdLogEvent(ticks, eventType, mode, message, stackTrace);

            DelayedLogEvents.Enqueue(evt);
            OnAddEvent(new EventArgs());
        }
예제 #3
0
 private void SendLogEvent(EditorPluginModel model, RdLogEvent logEvent)
 {
     if (!myConnectionLifetime.IsTerminated)
     {
         model.Log.Fire(logEvent);
     }
 }
예제 #4
0
 private static void SendLogEvent(RdLogEvent logEvent)
 {
     foreach (var modelWithLifetime in PluginEntryPoint.UnityModels)
     {
         if (modelWithLifetime.Lifetime.IsAlive)
         {
             modelWithLifetime.Model.Log(logEvent);
         }
     }
 }
 private void SendLogEvent(EditorPluginModel model, RdLogEvent logEvent)
 {
     MainThreadDispatcher.Instance.Queue(() =>
     {
         if (!myConnectionLifetime.IsTerminated)
         {
             model.Log.Fire(logEvent);
         }
     });
 }
예제 #6
0
 private void SendLogEvent(RdLogEvent logEvent)
 {
     MainThreadDispatcher.Instance.Queue(() =>
     {
         foreach (var modelWithLifetime in PluginEntryPoint.UnityModels)
         {
             if (modelWithLifetime.Lifetime.IsAlive)
             {
                 modelWithLifetime.Model.Log(logEvent);
             }
         }
     });
 }
        private void ApplicationOnLogMessageReceived(string message, string stackTrace, LogType type)
        {
            // use Protocol to pass log entries to Rider
            MainThreadDispatcher.Instance.InvokeOrQueue(() =>
            {
                RdLogEvent evt;
                switch (type)
                {
                case LogType.Error:
                case LogType.Exception:
                    evt = new RdLogEvent(RdLogEventType.Error, EditorApplication.isPlaying ? RdLogEventMode.Play : RdLogEventMode.Edit, message, stackTrace);
                    break;

                case LogType.Warning:
                    evt = new RdLogEvent(RdLogEventType.Warning, EditorApplication.isPlaying ? RdLogEventMode.Play : RdLogEventMode.Edit, message, stackTrace);
                    break;

                default:
                    evt = new RdLogEvent(RdLogEventType.Message, EditorApplication.isPlaying ? RdLogEventMode.Play : RdLogEventMode.Edit, message, stackTrace);
                    break;
                }

                var model = myModel.Maybe.ValueOrDefault;
                if (model == null)
                {
                    myDelayedLogEvents.AddLast(evt);
                    if (myDelayedLogEvents.Count >= myDelayedLogEventsMaxSize)
                    {
                        myDelayedLogEvents.RemoveFirst(); // limit max size
                    }
                }
                else
                {
                    SendLogEvent(model, evt);
                }
            });
        }
예제 #8
0
        private static void ApplicationOnLogMessageReceived(string message, string stackTrace, LogType type)
        {
            if (!ourLogEventsCollectorEnabled) // stop collecting, if setting was disabled
            {
                return;
            }

            RdLogEventType eventType;

            switch (type)
            {
            case LogType.Error:
            case LogType.Exception:
                eventType = RdLogEventType.Error;
                break;

            case LogType.Warning:
                eventType = RdLogEventType.Warning;
                break;

            default:
                eventType = RdLogEventType.Message;
                break;
            }

            var mode = RdLogEventMode.Play;

            if (PluginEntryPoint.PlayModeSavedState == PluginEntryPoint.PlayModeState.Stopped)
            {
                mode = RdLogEventMode.Edit;
            }

            var ticks = DateTime.UtcNow.Ticks;
            var evt   = new RdLogEvent(ticks, eventType, mode, message, stackTrace);

            ourDelayedLogEvents.Enqueue(evt);
        }
 private void SendLogEvent(UnityModel model, RdLogEvent logEvent)
 {
     //if (!message.StartsWith("[Rider][TRACE]")) // avoid sending because in Trace mode log about sending log event to Rider, will also appear in unity log
     model.LogModelInitialized.Value.Log.Fire(logEvent);
 }