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()); }); }
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()); }
private void SendLogEvent(EditorPluginModel model, RdLogEvent logEvent) { if (!myConnectionLifetime.IsTerminated) { model.Log.Fire(logEvent); } }
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); } }); }
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); } }); }
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); }