/// <summary>
        /// This is mean to be used with not properly managed code (for ex. Managed C++ wrapper)
        /// that does not allow for the gathering of baseMethod, thread and assembly information
        /// with reflection.
        /// </summary>
        /// <param name="?"></param>
        public static void TraceSimple(TracerItem.TypeEnum itemType, string message)
        {
            Tracer tracer = _tracer;

            if (tracer.Enabled && tracer != null)
            {
                TracerItem item = new TracerItem(itemType, TracerItem.PriorityEnum.Default, message);
                tracer.Add(item);
            }
        }
        /// <summary>
        ///
        /// </summary>
        public int GetItemsByTypeCount(TracerItem.TypeEnum type)
        {
            lock (this)
            {
                if (_itemsByType == null)
                {
                    return(0);
                }

                return(_itemsByType[type].Count);
            }
        }
Beispiel #3
0
        public bool GetItemTypeFiltering(TracerItem.TypeEnum itemType)
        {
            lock (this)
            {
                if (_itemTypes.ContainsKey(itemType))
                {
                    return(_itemTypes[itemType]);
                }
            }

            SystemMonitor.Warning("Unknown item type introduced.");
            return(false);
        }
        /// <summary>
        /// Perform actual item tracing.
        /// </summary>
        /// <param name="tracer"></param>
        /// <param name="itemType"></param>
        /// <param name="message"></param>
        static public void DoTrace(Tracer tracer, TracerItem.TypeEnum itemType, TracerItem.PriorityEnum priority, string message)
        {
            if (tracer != null && tracer.Enabled)
            {
                string threadId   = Thread.CurrentThread.ManagedThreadId.ToString();
                string threadName = Thread.CurrentThread.Name;

                MethodBase method = ReflectionHelper.GetExternalCallingMethod(3, OwnerTypes);

                MethodTracerItem item = new MethodTracerItem(itemType, priority, message, method);
                tracer.Add(item);
            }
        }
        private void toolStripButtonCheckImportant_Click(object sender, EventArgs e)
        {
            _isUpdating = true;

            foreach (ListViewItem item in this.listViewTypes.Items)
            {
                TracerItem.TypeEnum type = (TracerItem.TypeEnum)item.Tag;
                item.Checked = (type & TracerItem.TypeEnum.Error) != 0 ||
                               (type & TracerItem.TypeEnum.Warning) != 0;
            }

            _isUpdating = false;

            UpdateItemTypeFiltering();
        }
Beispiel #6
0
        public static TracerItem ParseFileItem(string line)
        {
            if (string.IsNullOrEmpty(line))
            {
                return(null);
            }

            try
            {
                string[] substrings = line.Split('|');

                if (substrings.Length < 4)
                {
                    SystemMonitor.OperationError("Failed to parse tracer item line [" + line + ", Not enough substrings generated].");
                    return(null);
                }

                TracerItem.TypeEnum     fullType = (TracerItem.TypeEnum) int.Parse(substrings[0]);
                TracerItem.PriorityEnum priority = (TracerItem.PriorityEnum) int.Parse(substrings[1]);

                long index = 0;
                long.TryParse(substrings[2], out index);

                DateTime time;
                try
                {
                    string   dateTime      = substrings[3];
                    string[] dateTimeParts = dateTime.Split('/');
                    string[] subParts      = dateTimeParts[2].Split(' ');
                    TimeSpan timeSpan      = TimeSpan.Parse(subParts[1]);

                    time = new DateTime(int.Parse(subParts[0]), int.Parse(dateTimeParts[1]),
                                        int.Parse(dateTimeParts[0]), timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds);
                }
                catch (Exception ex2)
                {
                    SystemMonitor.OperationError("Failed to parse tracer item line [" + line + ", " + ex2.Message + "].");
                    time = DateTime.MinValue;
                }

                return(new TracerItem(fullType, time, priority, index.ToString() + "  " + substrings[substrings.Length - 1]));
            }
            catch (Exception ex)
            {
                SystemMonitor.OperationError("Failed to parse tracer item line [" + line + ", " + ex.Message + "].");
                return(null);
            }
        }
 /// <summary>
 /// Full feature call, tracer included.
 /// </summary>
 public static void Trace(Tracer tracer, TracerItem.TypeEnum type, string message, TracerItem.PriorityEnum priority)
 {
     DoTrace(tracer, type, priority, message);
 }