public void Stop()
        {
            if (_timer == null || _messageBroker == null || _runtime?.Invoke() == RuntimePolicy.Off)
            {
                return;
            }

            var point = _timer.Stop(_startOffset);

            var msg = new LogStatistic
            {
                ModelName  = _modelName,
                SymbolType = _type,
                SymbolName = _symbolName,
                Time       = point.Duration.Milliseconds
            };

            var pointTimelineMessage = new AppDevTimelineMessage
            {
                Duration     = point.Duration,
                Offset       = point.Offset,
                StartTime    = point.StartTime,
                EventName    = $"{_type} {_modelName}.{_symbolName}",
                EventSubText = msg.Id.ToString()
            };

            _messageBroker.Publish(pointTimelineMessage);

            _messageBroker.Publish(msg);
        }
        public void Debug(object message)
        {
            if (_runtime == null)
            {
                return;
            }
            if (_runtime.Invoke() == RuntimePolicy.Off)
            {
                return;
            }
            if (message == null)
            {
                return;
            }
            if (!LoggerFactory.LogRequest())
            {
                return;
            }
            if (!message.ToString().ToLower().Trim().StartsWith(TargetMessage))
            {
                return;
            }
            if (!LoggerFactory.LogRequest())
            {
                return;
            }
            var item = new LogStatistic(null, null)
            {
                LoadNotification =
                    message.ToString().Replace(TargetMessage, string.Empty).Trim().UppercaseFirst()
            };

            Log(item);
        }
Beispiel #3
0
        public void DebugFormat(string format, params object[] args)
        {
            if (_runtime == null)
            {
                return;
            }
            if (_runtime.Invoke() == RuntimePolicy.Off)
            {
                return;
            }
            if (format == null)
            {
                return;
            }
            if (!LoggerFactory.LogRequest())
            {
                return;
            }
            var item = new LogStatistic(null, null)
            {
                CommandNotification =
                    string.Format(format.Trim().UppercaseFirst(), args),
            };

            Log(item);
        }
        static void SqlCommandExecuted(LogStatistic logStatistic)
        {
            if (_timerStrategy == null)
            {
                return;
            }
            var timer = _timerStrategy.Invoke();

            if (timer == null)
            {
                return;
            }
            var point = timer.Point();

            var pointTimelineMessage = new NHibernateTimelineMessage
            {
                Duration     = point.Duration,
                Offset       = point.Offset,
                StartTime    = point.StartTime,
                EventName    = string.Format("{0}:{1}", logStatistic.ExecutionType, logStatistic.ExecutionMethod),
                EventSubText = logStatistic.Id.ToString()
            };

            _messageBroker.Publish(pointTimelineMessage);
        }
Beispiel #5
0
 static void Log(LogStatistic logStatistic)
 {
     if (_messageBroker == null)
     {
         return;
     }
     _messageBroker.Publish(logStatistic);
 }
        public void PropertyTest()
        {
            var info = new LogStatistic
            {
                ModelName  = "WebForm",
                SymbolName = "WF",
                SymbolType = AppDevSymbolType.ClassOperation,
                Time       = int.MinValue
            };

            Assert.AreEqual(int.MinValue, info.Time);
            Assert.AreEqual("WebForm", info.ModelName);
            Assert.AreEqual(AppDevSymbolType.ClassOperation, info.SymbolType);
            Assert.AreEqual("WF", info.SymbolName);
            Assert.IsNotNull(info.Id);
        }
Beispiel #7
0
        public void Debug(object message)
        {
            if (_runtime == null)
            {
                return;
            }
            if (_runtime.Invoke() == RuntimePolicy.Off)
            {
                return;
            }
            if (message == null)
            {
                return;
            }
            if (!LoggerFactory.LogRequest())
            {
                return;
            }
            var timestamp = DateTime.Now;
            var item      = new LogStatistic(null, null)
            {
                ConnectionNotification =
                    string.Format("{0}{1}", message.ToString().Trim().UppercaseFirst(),
                                  string.Format(" @ {0}.{1}.{2}.{3}",
                                                timestamp.Hour.ToString(CultureInfo.InvariantCulture)
                                                .PadLeft(2, '0'),
                                                timestamp.Minute.ToString(CultureInfo.InvariantCulture)
                                                .PadLeft(2, '0'),
                                                timestamp.Second.ToString(CultureInfo.InvariantCulture)
                                                .PadLeft(2, '0'),
                                                timestamp.Millisecond.ToString(
                                                    CultureInfo.InvariantCulture).PadLeft(3, '0')))
            };

            Log(item);
        }
        public void Debug(object message)
        {
            if (_runtime == null)
            {
                return;
            }
            if (_runtime.Invoke() == RuntimePolicy.Off)
            {
                return;
            }
            if (message == null)
            {
                return;
            }
            if (!LoggerFactory.LogRequest())
            {
                return;
            }
            var stackFrames = new System.Diagnostics.StackTrace().GetFrames();
            var methods     = new List <MethodBase>();

            if (stackFrames != null)
            {
                foreach (var frame in stackFrames)
                {
                    var meth = frame.GetMethod();
                    var type = meth.DeclaringType;
                    // ReSharper disable ConditionIsAlwaysTrueOrFalse
                    //this can happen for emitted types
                    if (type != null)
                    // ReSharper restore ConditionIsAlwaysTrueOrFalse
                    {
                        var assem = type.Assembly;
                        if (Equals(assem, _thisAssem))
                        {
                            continue;
                        }
                        if (Equals(assem, _nhAssem))
                        {
                            continue;
                        }
                        if (Equals(assem, _glimpseAssem))
                        {
                            continue;
                        }
                    }
                    methods.Add(frame.GetMethod());
                }
            }
            // ReSharper disable ConditionIsAlwaysTrueOrFalse
            var frames = methods
                         .Select(method => string.Format("{0} -> {1}", (method.DeclaringType == null) ? "DYNAMIC" : method.DeclaringType.ToString(), method))
                         .ToList();
            // ReSharper restore ConditionIsAlwaysTrueOrFalse
            var item = new LogStatistic(null, null)
            {
                Sql           = message.ToString(),
                StackFrames   = frames,
                ExecutionType = (methods.Count == 0)
                                                   ? null
                                                   : (methods[0].DeclaringType == null)
                                                         ? "Object"
                                                         : methods[0].DeclaringType.Name,
                ExecutionMethod = (methods.Count == 0) ? null : methods[0].Name,
            };

            SqlCommandExecuted(item);
            Log(item);
        }