Пример #1
0
        public virtual void LogMethodDone(Stopwatch timing, object[] args, int maxAllowedTimeInMs, string sourceMemberName, string sourceFilePath, int sourceLineNumber)
        {
            var    timingV2   = timing as StopwatchV2;
            string methodName = sourceMemberName;

            if (timingV2 != null)
            {
                timingV2.StopV2();
                methodName = timingV2.methodName;
            }
            else
            {
                timing.Stop();
            }
            EventBus.instance.Publish(EventConsts.catMethod + EventConsts.DONE, methodName, timing);
            var text = "    <-- " + methodName + " finished after " + timing.ElapsedMilliseconds + " ms";

            if (timingV2 != null)
            {
                text += ", " + timingV2.GetAllocatedMemBetweenStartAndStop();
            }
           #if DEBUG
            if (DisposableExtensions.DEBUG_ThrownExceptionDetectedInCurrentContext())
            {
                text += " (DUE TO EXCEPTION THROWN)";
            }
           #endif
            text = $"{text} \n at {sourceFilePath}: line {sourceLineNumber}";
            Log.d(text, new StackFrame(1, true).AddTo(args));
            if (maxAllowedTimeInMs > 0)
            {
                timing.AssertUnderXms(maxAllowedTimeInMs);
            }
        }