コード例 #1
0
 private void OnBeforeMessageAdded(IRuntimeConsole console, ConsoleLogCancelArgs arg)
 {
     if (arg.LogEntry.LogType == LogType.Log)
     {
         arg.Cancel = true;
     }
 }
コード例 #2
0
        protected virtual void OnLogMessageReceived(string condition, string stackTrace, LogType type)
        {
            if (!AcceptMessage(condition, stackTrace, type))
            {
                return;
            }

            ConsoleLogEntry logEntry = null;

            if (MessageAdded != null || m_store)
            {
                logEntry = new ConsoleLogEntry(type, condition, stackTrace);
                if (BeforeMessageAdded != null)
                {
                    ConsoleLogCancelArgs args = new ConsoleLogCancelArgs(logEntry);
                    BeforeMessageAdded(this, args);
                    if (args.Cancel)
                    {
                        return;
                    }
                }

                m_log.Enqueue(logEntry);
                UpdateCounters(type, 1);
                if (m_log.Count > m_clearThreshold)
                {
                    ConsoleLogEntry[] removedItems = new ConsoleLogEntry[m_clearThreshold - m_maxItems];
                    for (int i = 0; i < removedItems.Length; ++i)
                    {
                        ConsoleLogEntry removedLogEntry = m_log.Dequeue();
                        removedItems[i] = removedLogEntry;
                        UpdateCounters(removedLogEntry.LogType, -1);
                    }

                    if (MessagesRemoved != null)
                    {
                        MessagesRemoved(this, removedItems);
                    }
                }
            }



            if (MessageAdded != null)
            {
                MessageAdded(this, logEntry);
            }
        }